我需要使用包含2-6‘x的grep命令显示所有行
还需要知道如何用3条连续的x来显示所有行
我已经尝试过grep x{2,6} example.txt,但是我一直收到一个错误,即在目录中找不到x6。我的示例文件包含7行,x的数量在每一行中增加1行。
发布于 2014-10-05 21:33:27
Bash使用支撑展开展开:
grep x{2,6} example.txt转入:
grep x2 x6 example.txt除非您的目录中有一个名为x6的文件,否则您将从grep中得到一个错误,告诉您它无法打开它。
grep中--尽可能地使用单引号。因此,使用:
grep 'x{2,6}' example.txt这涉及到对grep的正则表达式。现在我们需要考虑这意味着什么。默认情况下,这意味着在一行中查找字符x、{、2、,、6、}。添加-E选项使用扩展正则表达式,命令在文件中的一行上查找从2到6个连续x之间的任何内容:
grep -E 'x{2,6}' example.txt但是,值得注意的是,这与选择'xx'几乎是一样的,除非您有颜色,或者选择“仅”匹配的文本( GNU grep Extension-o选项)。
这些都是2-6相邻的x,这大概就是你建议的正则表达式所想要的。
你问三个相邻的x:
grep 'xxx' example.txt单引号不是100%必需的,但它们并没有坏处,并提醒您使用它们作为正则表达式。
现在我们面临的困境是,您可能意味着“单行2到6x之间,不一定相邻,而不是0或1,也不是7或更多”。
不精确的要求会导致不正确或无意的结果。满足这一要求需要一个更复杂的指标:
grep -E '^([^x]*x){2,6}[^x]*$' example.txt它查找2-6次0或更多的非x‘s,然后在行的开头是x,然后是零或更多的非x,直到行的末尾。
发布于 2014-10-05 21:31:36
我需要使用GREP命令显示包含2-6‘x的所有行
grep -P '^(?:[^x]*x[^x]*){2,6}$' file还需要知道如何用3条连续的x来显示所有行
grep -P 'xxx' filehttps://stackoverflow.com/questions/26207344
复制相似问题