获取文本文件中以“$”结尾的行

时间:2014-02-26 15:01:20

标签: linux shell grep

我有这样的输出:

a/foo bar /
b/c/foo sth /xyz
cc/bar ghj /axz/byz

我想要的只是这一行:

a/foo bar /

为了更清楚,我希望那些以特定字符串结尾的行。我想grep在最后一列有/字符的行。

2 个答案:

答案 0 :(得分:10)

您可以像这样使用$

$ grep '/$' file
a/foo bar /

由于$代表行尾,/$匹配最后一个字符为/的行。

答案 1 :(得分:2)

grep '/$'
对于grep,

斜线不是特殊字符 $ 表示一行处的匹配表达式。


您甚至可以在最后一栏(但不是该行中唯一的一列)中使用仅反冲来填充最后一列

我认为某一行的最后一列是一个字符串,其中前面有一个以上的空格字符串 之后不再有字符字符串。如果该行 只有一列,则 在它前面显示它是最后一列,如果只有一列。

启用 perl 正则表达式(-P),

grep -P '\s+/$'

\ s表示匹配任何空格字符(空格,制表符,换行符)

加号表示元素

匹配1次或更多次

$表示字符串结尾

请参阅Character Classes and Bracket Expressions

grep '[[:space:]]\+/$'

grep '[[:blank:]]\+/$'
  

'[:blank:]'空白字符:空格和制表符。

     

'[:space:]'空格字符:在'C'语言环境中,这是tab,newline,   垂直制表符,换页,回车和空格。它是'\ s'的同义词。

     

参考@fedorqui,后面的反斜杠]]用来区分   文字+。谢谢你的解释。

抱歉如果perl的答案有误,因为我从不使用或学习 Perl 表达式但是真的希望可以帮助你找到最后一列斜杠所以您可以阅读这些内容以获取更多信息,以便在行尾用斜杠搜索退格

grep with regexp: whitespace doesn't match unless I add an assertion

Regular expressions in Perl