我知道通过使用:
awk '($18 ~ 0)' file > match
我得到所有在第18场都有0的线。因此,我试图实现相同的逻辑来分割文件,因为它的第18个字段是否为“0”:
awk -F, '{ if ($18 ~ 0) print > "match"; else print > "not_match"}' file
但是不起作用,“匹配”上没有打印任何行。
我做错了什么?你知道在bash中这样做的其他方法吗?
谢谢你的时间!
答案 0 :(得分:1)
这是根据字段值有条件地分割文件行的最小完整示例:
[me@host]$ cat > /tmp/blah
0 Yes
1 No
1 No
0 Yes
1 No
[me@host]$ awk '($1 ~ 0) { print > "/tmp/match"; next } { print > "/tmp/non_match" }' /tmp/blah
[me@host]$ cat /tmp/match
0 Yes
0 Yes
[me@host]$ cat /tmp/non_match
1 No
1 No
1 No