3

我在一个文本文件中有以下字符串(大的,更像这些和不同的):

79A18D7F-1517-5981-8446-3A0452727B06
7842A72D-1517-5281-84E4-EAEF09B743F7
6040BEE7-1517-5982-84C1-419B224E647E
615F2747-1517-5981-84AF-787C34967FB2
7468A3E3-1517-5931-84B3-3FC3F701C269

我可以使用 grep 和 regex 找到它们:

'[0-9A-F]{8}-[0-9]{4}-[0-9]{4}-[0-9A-F]{4}-[0-9A-F]{12}'

删除它们的 sed 正则表达式语法是什么,因为:

sed "s/[0-9A-F]{8}-[0-9]{4}-[0-9]{4}-[0-9A-F]{4}-[0-9A-F]{12}//g"

似乎不起作用。

谢谢!

4

2 回答 2

4

使用sed -r. 您依赖扩展的正则表达式语法功能而不转义它们,但sed -r您不必这样做。如果您想实际删除这些行而不是清除它们,您可以使用:

sed -r "/regex/d"
于 2013-03-21T17:30:38.750 回答
1

此外,对于常规 sed (BRE),您需要转义花括号:

sed 's/[0-9A-F]\{8\}-[0-9]\{4\}-[0-9]\{4\}-[0-9A-F]\{4\}-[0-9A-F]\{12\}//g' file
于 2013-03-21T18:00:12.803 回答