Grep 查找以“结束”结尾的行+&引用;
我无法形成一个grep正则表达式,它只能找到以+符号结尾的行。例如: 应该匹配-Grep 查找以“结束”结尾的行+&引用;,grep,Grep,我无法形成一个grep正则表达式,它只能找到以+符号结尾的行。例如: 应该匹配-这是一个示例行+ 不应匹配-这是另一个带+in-between或这是另一个带+in-between并以+结尾的,请使用$指示行的结尾: grep '+$' file 例子 更新 如果我想显示最后只有+的行呢。即使 行是这样的,这是一行,在bw中是+的,在结尾是+。我 我不希望这一行匹配 然后您可以使用awk: awk '/\+$/ && split($0, a, "\+")==2' file 解释
这是一个示例行+
不应匹配-
这是另一个带+in-between
或这是另一个带+in-between并以+
结尾的,请使用$
指示行的结尾:
grep '+$' file
例子
更新
如果我想显示最后只有+的行呢。即使 行是这样的,这是一行,在bw中是+的,在结尾是+。我 我不希望这一行匹配 然后您可以使用
awk
:
awk '/\+$/ && split($0, a, "\+")==2' file
解释
匹配以/\+$/
结尾的行+
根据split($0,a,“\+”)==2
分隔符将字符串分成块。返回值是个数,因此+
表示它只包含一个2
+
指定结尾
+
不应前面加任何其他+
,或作为正则表达式:
grep '^[^+]*+'
在第二版a
文件上测试时的输出:
This is a sample line +
谢谢,这很有效!我也在做同样的事情,但是在Windows创建的文件上,我复制了文件内容并创建了一个新文件,瞧!很高兴读到:)有时候在UNIX中使用Windows文件会导致奇怪的字符。如果是这样,您可以始终使用
dos2unix
命令来清理它们。如果我想显示最后只有+的行,该怎么办。即使一行是这样的,这也是一行在bw中有+并且在结尾有+
。我不希望此行匹配。请参阅更新。另外,在发布第一个问题后,不要考虑更改需求。
grep '^[^+]*+'
This is a sample line +