这里有新手..我很困惑如何在特定列中合并多行并打印成一行。例如,我在.csv文件中有这种数据(用逗号分隔):
ID1,X1,X2,X3,X4,X5,X6,T,C
ID2,X1,X2,X3,X4,X5,X6,G,A
ID3,X1,X2,X3,X4,X5,X6,C,G
ID4,X1,X2,X3,X4,X5,X6,A,A
我计划每行仅选择第8列和第9列,并将它们全部打印在一行中并使用空格分隔,以便结果如下:
T C G A C G A A
为此,我尝试使用AWK代码:
awk -F "," '{printf "%s ",$8, "%s ",$9}' FILE > outputfile
但是它给了结果所有在col 8th之间的合并然后在col 9th中的所有:
T G C A C A G A
非常欢迎任何建议。
非常感谢您的帮助。
答案 0 :(得分:1)
kent$ awk -F, '{t=$8 OFS $9;s=s?s OFS t:t}END{print s}' file
T C G A C G A A
答案 1 :(得分:1)
试试这个awk
:
awk -F "," '{printf "%s %s ", $8,$9}' yourfile