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}'

それらを削除するためのsedregex構文は何ですか?

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 に答える