如何在列中显示awk输出而不是在前一个末尾添加一个?
答案 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