$ sed -nr '/^[-]+[[:space:]]equipo[[:space:]][-]+$/p' archivo
---------------------- equipo -----------------------
---------------------- equipo -----------------------
其中参数-n在找到模式之前抑制文件的输出,并且参数-r启用正则表达式。
尽管您也可以对其他选项(例如egrep,grep或awk类似的选项)执行相同操作。
egrep 和 grep
$ egrep '^[-]+[[:space:]]equipo[[:space:]][-]+$' archivo
---------------------- equipo -----------------------
---------------------- equipo -----------------------
任何一个
$ grep -E '^[-]+[[:space:]]equipo[[:space:]][-]+$' archivo
---------------------- equipo -----------------------
---------------------- equipo -----------------------
$ grep -E '^[-]+[[:space:]]equipo[[:space:]][-]+$' archivo.txt -q && echo Si existe || echo no existe
Si existe
用 awk
$ awk '/^[-]+[[:space:]]equipo[[:space:]][-]+$/' archivo
---------------------- equipo -----------------------
---------------------- equipo -----------------------
我认为您不只是想要“团队”这个词,而是将它放在连字符和空格之间作为指示符。在这种情况下,正则表达式将是:^[-]+[[:space:]]team[[:space:]][-]+$
渴
在命令中,它
sed
的形式为其中参数
-n
在找到模式之前抑制文件的输出,并且参数-r
启用正则表达式。尽管您也可以对其他选项(例如
egrep
,grep
或awk
类似的选项)执行相同操作。egrep 和 grep
任何一个
如果您想要的唯一事情是“知道它是否存在”,而不仅仅是“知道它是否存在并将其打印在屏幕上”,那么
-q
您可以在此处使用该参数。grep
这是因为该参数-q
不生成输出,而是退出状态 0(如果找到模式或即使存在错误)或不同于 0(如果未找到模式)。你可以检查这个grep(1)
。例子:用 awk
其中,如果找到模式,将采取默认操作,
awk
即打印整条记录。关于正则表达式。
该正则表达式的解释是 "^[-]+" 期望模式以重复多个 "-" 字符 ([-]+) 开始 (^),然后以空格 ([[:space :]]),然后继续单词“team”,然后以相同的方式重复([[:space:]] 和 [-]+),但以该模式结束($)
现在,如果您只希望出现“团队”一词,无论之前或之后出现什么,您都可以删除元字符并只留下带有团队一词的命令。