用awk写入多个文件

时间:2014-10-13 15:41:45

标签: bash awk

我有一些文本文件有几列。我正在使用awk只将我想要的列写入输出文件,我稍后会分析。

awk 'BEGIN {FS="\t"}; {print $2,FS,$3,FS,$4} input_files*.txt >> output_file.txt

我可以更进一步,将我的awk命令的输出重定向到多个文件,具体取决于let $ say column $ 5的值吗?如果列$ 5 = A,B,C和D,我最终会得到类似的结果:

output_file_A.txt
output_file_B.txt
output_file_C.txt
output_file_D.txt

感谢。

卡洛斯

2 个答案:

答案 0 :(得分:2)

您可以使用此awk

awk 'BEGIN {FS="\t"}; {fn="output_file_" $5 ".txt"} {print $2,FS,$3,FS,$4 > fn} input_files*.txt

答案 1 :(得分:2)

 awk 'BEGIN {FS="\t"}; {print $2,FS,$3,FS,$4 >> "output_file_"$5} input_files*.txt

awk中的重定向与终端完全相同。