Linux追加文件內容並在內容前加上該文件名(awk, FILENAME功能妙用)


假如有三個文件file1.txt,file2.txt,file3.txt

每一個文件內容如下:

現在打算提取每一個文件字符為16的行,打印該行所有的內容、以及該文件名,並追加到file4.txt,則可以用以下命令:

for i in *.txt
do
echo
awk -F " " '{if($1~/^16/) print FILENAME,$1,$2,$3,$4,$5 }' $i >> file4.txt
done
###{if($1~/^16/) print FILENAME,$1,$2,$3,$4,$5 }的意思是,在三個txt文件中,如果第一列($1)里面有匹配(~)正則表達式(/^16/)的話,那么就輸出(print)到標准輸出。保存到file4.txt文件中。

  

則file4.txt的內容會如下:

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM