如果N
字段中包含字符串s
,bash中最好的方法是使用快速单行过滤掉制表符分隔文件中的所有行?例如:
$ cat myfile
A B_crop C
A X_mock D
$ cat myfile | filter -V -c 2 -s "crop"
A X_mock D
组合命令filter
采用列号(从1开始)-c
,字符串-s
,并且只保留给定列中包含字符串的行。如果它传递-V
然后像grep
那样,它会排除没有字符串的行是该列号中的子字符串。感谢。
答案 0 :(得分:2)
由于您希望根据列进行排除,我会使用awk
:
awk '$2 == "crop" { print $0 }' myfile
$2
表示使用第2列进行比较。要实施-V
功能,请使用!=
而不是==
。
您还可以使用正则表达式检查来检查子字符串:
awk '$2 ~ /crop/ { print $0 }' myfile
正则表达式匹配也可以用!~
否定。