根據每行中的數值從另一個文件建立一個文件

根據每行中的數值從另一個文件建立一個文件

我們將產生一個包含以下值的 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命令單獨提取第一列以獲得文件名,並根據第一列使用循環whiletouch命令創建新文件。

但是,我認為第一列始終是唯一的。如果它不是唯一的,我們可能需要採取另一種方法。為此,您需要編輯您的問題並提及您計劃使用的檔案名稱約定。

答案2

一站式服務awk,假設第 1 列是唯一的

awk -F "," '$2 >= 577 { print $0 > $1 }' my.csv

相關內容