我有很多输入文件,例如1.txt,2.txt,3.txt 所有文件名都列在filelist.dat的一列中。
awk '{print $1}' $(cat filelist.dat) > all.dat
在文件all.dat中,写入三个文件的第一个字段值。
我想将一个输出文件分成三个与输入文件对应的文件。
答案 0 :(得分:0)
试试这行,我没有测试:
awk '{fn=FILENAME"_out";print $1>>fn;close(fn);}' <yourFileList>
这将为每个输入文件输出一个输出文件:&#34; input_out&#34;
备注强>
如果您的文件列表不是很大,则可以使用>
重定向并删除close(fn)
。
close()
的oneliner是一个快速解决方案。我们可以做得更好,只通过切换输入关闭文件,以避免经常打开/关闭文件。但如果它解决了你的问题,你可以使用它。