我正在努力想出一个匹配所有不以
开头的行的正则表达式10[TAB]A
或
M10....
并在bash中使用ggrep。
得到这样的东西:
^(^(10\tA|M10*))
但显然是错误的
非常感谢帮助
答案 0 :(得分:5)
使用-v
选项:
grep -v '^10\tA\|^M10' /path/to/file
grep -Ev '^10\tA|^M10' /path/to/file
使用-v
选项,它将打印不匹配的行。
注意:\t
无效。将其输入为真正的制表符(通过按 Ctrl + v , Tab )。
答案 1 :(得分:1)
您可以使用以下grep命令。
grep -P '^(?!10\tA|M10)' file
(?!10\tA|M10)
这个负向前瞻断言,起始锚点后面的字符串(即行的开头)不会是10
标签A或M10
。如果一条线满足这个条件,那么匹配将发生在该相应线的开始处。因此导致打印这些线。
答案 2 :(得分:1)
awk方式
awk '!/^(10\tA|M10)/' file
或者如果你想使用grep
grep -Ev '^(10 A|M10)' file