我有一个文件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]
答案 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会打印所有匹配的行。