Linux学习与应用技巧生信linux

grep 参数组合 -f -w

2022-08-24  本文已影响0人  Silver_42ac

2023 01 09 更新:
还会有一种特殊情况匹配错误 -w -f 依然出错

用字符串ABC 匹配 ABC,ABC-1,ABC-2

ABC-1,ABC-2 都会被匹配到;
就解决方法,改成完全一样的,vim 中前后加 \t tab
%s#^#\t#g
%s#$#\t#g

然后 grep -f par.lst xxx.bed


血的教训:用 -f 一定要带上 -w ,除非你想局部匹配;
带上-w全词匹配,相当于你的文件内容每行末尾加了 \Z 或者$ 表示末尾的正则。
文件1:

A
B
C

文件2

A
B
B1
B2
B3
C
D
grep  -v -f 文件1 文件2
# 结果: D
grep  -v -w -f  文件1 文件2
# 结果 B1 B2 B3 D

-v, --invert-match select non-matching lines
-f, --file=FILE obtain PATTERN from FILE
-w, --word-regexp force PATTERN to match only whole words

上一篇下一篇

猜你喜欢

热点阅读