如何识别文件中以5结尾的行

时间:2014-11-28 12:09:39

标签: linux unix grep cygwin gnu

我有一个文件test.lst,其内容如下所示。 使用CYGWIN_NT-6.1-WOW64。 我只需要选择那些不以5结尾的行。

12
23
45
56
45
23
09
12
99
100
0000
9999999

输出应为:

12
23
56
23
09
12
99
100
0000
9999999

grep -v '5$' test.txt,我的情况如下:

[2014-11-28 17:42.57]  /drives/d/Shantanu/MyScript
[463615.PC172645] ➤ grep -v '5$' test.txt
12
23
45
56
45
23
09
12
99
100
0000
9999999
[2014-11-28 17:43.21] 

3 个答案:

答案 0 :(得分:2)

小心翼翼地说出来:

grep -v '5$' file

这会查找以5结尾的行($指的是行尾)。然后-v反转匹配。

对于您的输入,它返回:

12
23
56
23
09
12
99
100
0000
9999999

答案 1 :(得分:0)

您可以使用反向grep搜索或使用sed进行反向搜索,如下所示:

sed -n '/5$/!p' test.txt

or

grep -v "5$" test.txt

答案 2 :(得分:0)

你可以使用否定的字符类。

grep '[^5]$' file

[^5]$匹配最后一个不是数字5的字符。默认情况下,grep会打印所有匹配的行。