2013-05-08 12 views
5

mi piacerebbe cancellare tutte le linee con 3 segni più:Sfuggire il segno più non funziona

+++ 3 plus signs 
+ 1 plus sign 
+++ 3 plus signs 

Ecco il mio comando sed, sfuggendo i segni più dopo l'inizio della linea

sed '/^\+\+\+/d' -> This erase all lines 
sed '/^+++/d'  -> This works and show only the 1 plus sign line 

Perché? C'è qualche problema durante l'escape del segno più?

risposta

5

"Un rapido commento: l'originale sed non supportava il metacarattere" + ". GNU sed se si utilizza l'opzione di riga di comando" -r ", che abilita le espressioni regolari estese."

(Source)

Se non si utilizza sed -r, allora non c'è bisogno di fuggire + poiché non è considerato un metacarattere.

+2

@Tom Vale la pena notare che le espressioni regolari hanno 3 forme di sintassi popolari: base, estesa e compatibile con Perl. Sed normale (senza -r) implementa la forma base. –

Problemi correlati