ich versuche
grep searchterm myfile.csv | sed 's/replaceme/withthis/g'
und bekommen
unknown option to `s'
Was mache ich falsch?
Bearbeiten:
Gemäß den Kommentaren ist der Code tatsächlich korrekt. Mein vollständiger Code ähnelte ungefähr dem folgenden
grep searchterm myfile.csv | sed 's/replaceme/withthis/g'
# my comment
Und es scheint, dass aus irgendeinem Grund mein Kommentar als Eingabe in sed eingespeist wurde. Sehr eigenartig.
/
Inreplaceme
oder habenwiththis
. Versuchen Sie :'s#replaceme#withthis#g'
.Antworten:
Verwenden Sie die Option --expression
quelle
Verwenden Sie "-e", um den sed-Ausdruck anzugeben
quelle
sed
liest wie die meisten un * x-Tools aus stdin, wenn keine Eingabedatei vorhanden ist.-e
notwendig? Es funktioniert ohne-e
. Ich frage mich, was der Zweck der Verwendung ist-e
. Vielen Dank.echo foo | sed 's/foo/bar/g'
funktioniert ohne-e
, durch Ausgabebar
. Also muss ich seine Frage verpasst haben.Um
sed
aus stdin anstatt aus einer Datei zu fangen, sollten Sie verwenden-e
.So was:
quelle
Wenn Sie versuchen, eine direkte Aktualisierung des Textes in einer Datei durchzuführen, ist dies in meinen Augen viel einfacher zu begründen.
quelle
vi myfile.csv
:%s/replaceme/withthis/
:wq
und drücken SieEnterJetzt haben Sie das neue Muster in Ihrer Datei.
quelle