用awk显示列中的输出

时间:2017-11-28 21:56:06

标签: bash awk

如何在列中显示awk输出而不是在前一个末尾添加一个?

1 个答案:

答案 0 :(得分:1)

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