
私のコードの一部は以下のとおりです:
output=$(cat databaselog | awk '{print $9,$1,$2,$6}' )
echo $output >> savedfile
出力は次のようになり、savedfileという新しいファイルに保存されます。
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
echo するときには二重引用符で囲む必要があります"$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