笔记:这个问题是对这个问答的补充:如何“grep”给定范围内的行长度?
我们如何 grep 查找少于 8 个或多于 63 个字符的行,而不包含多于 8 个且少于 63 个字符的行?
因此,一些可接受的字符数可能是......
7 6 5 4 3 2 1 0
...和...
64 65 66 67 ...
答案1
grep -xv '.\{8,63\}' <input >output
grep
的-x
开关表示全线match - 也就是说任何匹配的模式都必须定义从头到尾的一条线。正在做...
grep -x pattern
...一般相当于...
grep ^pattern$
grep
的-v
开关消除了模式对行选择的影响。一般是做...
grep pattern
...只会选择与模式匹配的行,但带有-v
否定模式,仅选择那些与模式匹配的行不匹配被选中。
...所以...
grep -xv '.\{8,63\}'
...匹配从头到尾包含 8 到 63 个字符的所有行,而-v
否定选择只会grep
打印其他所有内容。