2015-06-17 47 views
-1

我有很多輸入文件,例如1.txt,2.txt,3.txt 所有文件名都列在filelist.dat的一列中。處理許多輸入文件並通過awk分隔許多輸出文件

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

在文件all.dat中,寫入了三個文件的第一個字段值。

我想將一個輸出文件分爲三個對應於輸入文件的文件。

回答

0

給這條線一試,我沒有測試:

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

這將輸出爲每個輸入文件的輸出文件: 「input_out」

注意

  • 如果您的文件列表不是那麼大,您可以使用>重定向並刪除close(fn)

  • close()的oneliner是一個快速解決方案。我們可以更好地通過切換輸入來關閉文件,以避免經常打開/關閉文件。但如果它解決了你的問題,你可以使用它。