2017-05-19 3 views
0

Ich habe ein Skript mit der folgenden Zeile:Löschen anstelle mit sed Nachgeben ‚zusätzliche Zeichen‘ Fehler auf OSX

sed -i.bak '2,${/rate = 3/d}' $FILENAME 

Das Ziel ist es, die ersten Zeilen der Datei zu überspringen, wenn die Löschdurchführen. Ich erhalte den folgenden Fehler:

sed: 1: "2,${/rate = 3/d}": extra characters at the end of d command 

Wie kann ich es wie vorgesehen arbeiten lassen?

+0

funktionierts auf osx? 'seq 5 | sed '2, $ {/ [35]/d}' 'funktioniert auf gnu sed .... wahrscheinlich Syntax ist anders? – Sundeep

+0

@Sundeep nein, der gleiche Fehler. Vielleicht wechsle ich einfach zu GNU sed. – ssb

+1

Ich erinnere mich vage daran, es auf SO zu sehen ... etwas wie 'seq 5 | sed -e '2, $ {' -e '/ [35]/d' -e '}' ... check 'man sed', könnte Details zum Aufbau einer solchen Sequenz haben – Sundeep

Antwort

1

Mit einem ;

helfen sollte
$ seq 5 | sed '2,${/[35]/d;}' 
1 
2 
4 

Dank @CRD auch für diese in den Kommentaren bestätigt

Verwandte Themen