Shell 基于输入文件第一列的模数,使用awk拆分文件
我有一个具有以下数据集的输入文件-Shell 基于输入文件第一列的模数,使用awk拆分文件,shell,awk,Shell,Awk,我有一个具有以下数据集的输入文件- 1234567,1234444,34567 2345678,9878979,54354 1222222,8763481,89374 3444444,8978979,78346 我想根据输入文件中定义的第一列的模数(10)拆分此文件。所以我想把所有属于set(与mod匹配)的数据分组,并将其放入新文件中。 所以对于这个输入数据, 我想要四个不同的文件。输出名称必须类似于- File 1 - output2.txt 1222222,8763481,89374 F
1234567,1234444,34567
2345678,9878979,54354
1222222,8763481,89374
3444444,8978979,78346
我想根据输入文件中定义的第一列的模数(10)拆分此文件。所以我想把所有属于set(与mod匹配)的数据分组,并将其放入新文件中。
所以对于这个输入数据,
我想要四个不同的文件。输出名称必须类似于-
File 1 - output2.txt
1222222,8763481,89374
File 2 - output4.txt
3444444,8978979,78346
等等
您能帮我提供一个执行此操作的awk语句吗?grep就可以了
grep '^[0-9]*2,' your_file > output2.txt
grep '^[0-9]*4,' your_file > output4.txt
awk版本
awk '/^[0-9]*2,/' your_file > output2.txt
使用
awk
可以使用%
模数运算符:
$ awk '{print > $1%10}' file
您还可以在文件名中添加一些文本:
$ awk '{print > "output"$1%10".txt"}' file
就我而言,它会产生:
$ls
output2.txt output4.txt output7.txt output8.txt
例如file2
如下所示:
$ cat output2.txt
1222222,8763481,89374