Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何识别文件中以5结尾的行_Linux_Unix_Grep_Cygwin_Gnu - Fatal编程技术网

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

Linux 如何识别文件中以5结尾的行,linux,unix,grep,cygwin,gnu,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

我有一个文件
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] 
只要把它们写出来:

grep -v '5$' file
这将查找以
5
结尾的行(
$
指行的结尾)。然后
-v
反转匹配

对于您的输入,它返回:

12
23
56
23
09
12
99
100
0000
9999999

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

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

or

grep -v "5$" test.txt

您可以使用否定字符类

grep '[^5]$' file

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

[2014-11-28 17:42.57]/drives/d/Shantanu/MyScript[4567.PC1234]➤ grep-v'5$'test.txt 12 23 45 56 45 23 09 12 99 100 0000 999999请更新您的问题,说明输出。在评论中,不可能正确地看到它。另外,您的
grep
版本是什么?做<代码> GRP--版本< /> > GNU-GRP2.5.3版权(C)1988,1992—2002,2004, 2005免费软件基金会,这是免费软件;有关复制条件,请参见源。没有担保;甚至不是为了适销性或适合特定用途。您的文件可能包含一些奇怪的字符。你能试试cat-vet文件吗?我目前正在windows上使用mobaxterm(GNU)。。可能这不支持很多东西。。当我有权访问并共享结果时,将在Linux box中尝试。。我相信5美元可以在linux系统中使用。。我不知道GNU为什么不使用它