我有 100 個檔案看起來像這樣
>file.csv
gene1,55
gene2,23
gene3,33
我想插入檔案名并使它看起來像這樣:
file.csv
gene1,55,file.csv
gene2,23,file.csv
gene3,33,file.csv
現在,我幾乎可以使用 awk 到達那里
awk '{print $0,FILENAME}' *.csv > concatenated_files.csv
但這會列印帶有空格而不是逗號的檔案名。有沒有辦法用逗號替換空格?
uj5u.com熱心網友回復:
有沒有辦法用逗號替換空格?
是的,更改OFS
$ awk -v OFS="," '{print $0,FILENAME}' file.csv
gene1,55,file.csv
gene2,23,file.csv
gene3,33,file.csv
uj5u.com熱心網友回復:
想通了,結果:
for d in *.csv; do (awk '{print FILENAME (NF?",":"") $0}' "$d" > ${d}.all_files.csv); done
作業得很好。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/521555.html
標籤:linux重击
上一篇:使用包含兩個串列的資料框使用matplotlib創建繪圖
下一篇:使用bash替換檔案中的字串
