我有一个包含以下数据集的输入文件 -
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语句吗?
答案 0 :(得分:1)
使用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
答案 1 :(得分:0)
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