处理许多输入文件并用awk分隔许多输出文件

时间:2015-06-17 11:59:28

标签: bash awk

我有很多输入文件,例如1.txt,2.txt,3.txt 所有文件名都列在filelist.dat的一列中。

awk '{print $1}' $(cat filelist.dat) > all.dat

在文件all.dat中,写入三个文件的第一个字段值。

我想将一个输出文件分成三个与输入文件对应的文件。

1 个答案:

答案 0 :(得分:0)

试试这行,我没有测试:

 awk '{fn=FILENAME"_out";print $1>>fn;close(fn);}' <yourFileList>

这将为每个输入文件输出一个输出文件:&#34; input_out&#34;

备注

  • 如果您的文件列表不是很大,则可以使用>重定向并删除close(fn)

  • close()的oneliner是一个快速解决方案。我们可以做得更好,只通过切换输入关闭文件,以避免经常打开/关闭文件。但如果它解决了你的问题,你可以使用它。