根据每行中的数值从另一个文件创建一个文件

根据每行中的数值从另一个文件创建一个文件

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

相关内容