我们将生成一个包含以下值的 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