0
awkの出力を列に表示するにはどうしたらいいですか?awkの列に出力を表示する
awkの出力を列に表示するにはどうしたらいいですか?awkの列に出力を表示する
print
コマンドは出力を新しい行で終了させます。そのため、各データ項目が新しい行に表示されていることがわかります。
print
をprintf
に置き換えた場合、各出力は「現在の」出力行に残ります(つまり、出力の最後に改行文字は配置されません)。
は、例えば、あなたが明示的にフィールドセパレータ(例えば、スペース、タブ)を指定する必要がありますに注意してください:
printf "%s\t",$4 # will print field $4 followed by a tab
を次に、あなたがprint ""
を実行するか、行を終了したい場合や、 printf "\n"
を使用して、出力の最後に改行文字を追加します。
あなたがフィールドセパレータとしてタブをしたいと仮定すると、あなたがそのようなのような単一のコマンドにあなたの様々なawk
コマンドを組み合わせることができ:おそらく最も簡単な方法は、出力タブの代わりに改行され
$ awk '
/^Query=/ {split($0, a, ".") ; printf "solani.%s\t",a[4]}
/^$/ {q=1}
/Length/ && q {split($0, b, "=") ; printf "%s\t",b[2]}
/./ {q=0}
/^>/ {split($0, c, ".") ; printf "dadantii.%s\n",c[4] }
' file
solani.1 76 dadantii.2053
が。つまり、 'print 'の代わりに' print '"%s \ t "、" solani "を使います。a [4]'改行がなくなりますが、それは簡単です修正する。 –
はいそれです!私のポストを更新しました(ごめんなさい) –
ummm、出力値の2番目のセットを追加しました。それらは同じソースファイルか別のソースファイルから来たのでしょうか?別の言い方をすると... 1つのファイルからどれだけ多くの出力を抽出すると思われますか?ファイルから複数のデータセット(抽出する)がある場合は、質問を更新して、ソースファイル内にどのような2セットのデータが表示されるのかを表示してください。 – markp