私のコードの一部は次のとおりです。
output=$(cat databaselog | awk '{print $9,$1,$2,$6}' )
echo $output >> savedfile
出力は次のようになり、savefileという新しいファイルに保存されます。
name1 date1 id1 ip1 name2 date2 id2 ip2 name3 date3 id3 ip3
しかし、私はこれが次のようになりたいです:
name1 date1 id1 ip1
name2 date2 id2 ip2
name3 date3 id3 ip3
これが簡単であることはわかりますが、正しい方法が見つかりません。助けてください。ありがとうございます!
答え1
エコーするときは$output
二重引用符が必要です。"$output"
それ以外の場合、出力は改行やその他の空白を空白に変換します。
コマンド置換を二重引用符で囲むのも良い習慣です。 output="$(...)"
ただではなくoutput=$(...)
例えば
output="$( cat databaselog | awk '{print $9,$1,$2,$6}' )"
echo >> savedfile
echo "$output" >> savedfile
しかし、これを行う方が良いです:
echo >> savedfile
awk '{print $9,$1,$2,$6}' databaselog >> savedfile