我們將產生一個包含以下值的 csv 檔案。
yp1234,577,1,3
yp5678,570,3,5
yp9012,132,8,9
我需要提取數據並根據第二列創建文件。如果它的值大於 577,則必須提取整行並將其放置在單獨的檔案中。
我的意思是我需要一個第二列行數大於 577 的檔案。
答案1
可以使用以下命令來完成。
awk -F "," ' $2 >= 577 ' filename.csv > create_files
您可以將上述內容的全部內容放入一個新文件中(我將新文件命名為create_files
),現在您可以從該文件建立新文件。
執行上述命令後,由於您沒有提到任何檔案名稱約定,因此我假設第一列可以作為檔案名稱。因此,您可以遵循以下方法:
awk -F "," '{ print $1 }' create_files | while read a; do touch $a; done
我使用該awk
命令單獨提取第一列以獲得文件名,並根據第一列使用循環while
和touch
命令創建新文件。
但是,我認為第一列始終是唯一的。如果它不是唯一的,我們可能需要採取另一種方法。為此,您需要編輯您的問題並提及您計劃使用的檔案名稱約定。
答案2
一站式服務awk
,假設第 1 列是唯一的
awk -F "," '$2 >= 577 { print $0 > $1 }' my.csv