2015-03-16 11 views
8
grep -l \'texttofind\' * | xargs sed -i 's/toreplace/replacewith/g' 

Ich bekomme diesen Fehler, wenn ich den obigen Befehl im Terminal ausführe.sed: 1: "...": Ungültiger Befehlscode f

sed: 1: "forkliftDailyChecklistW ...": invalid command code f 

Ich habe mehrere Foren angeschaut und habe nichts über Code f gefunden. Irgendwelche Hilfe/Einblick würden geschätzt werden

+1

Bitte zeigen die genaue sed Befehl Sie verwenden (anstelle von 'toreplace' und' replacewith'). Wildes Raten: Gibt es ein '/' in einem der Begriffe? – Wintermute

+0

Ja. Unter der Annahme, dass die Ausgabe von 'grep' korrekt ist, sollten Sie unbedingt nach'/'in den Argumenten von' sed' suchen. Wenn dies der Fall ist, versuchen Sie es mit der Syntax "s_toreplace_replacewith_g". – TomCho

+0

Hier ist der Befehl: grep -l \ '/ usr/local/www/apache22/data/htconfig/dbconfigure.php \' * | xargs sed -i 's/\/usr \/local \/www \/apache22 \/data \' \ '\\\\\\\\\ SERVER \ [' \ '' DOCUMENT_ROOT '\' '\] \. \' '/ g' –

Antwort

14

Ich fand heraus, was falsch war. Ich brauchte '' nach dem -i und vor dem 's/../../' hinzuzufügen:

grep -l \'texttofind\' * | xargs sed -i '' 's/toreplace/replacewith/g' 
+1

Ich wusste, das Mittagessen würde es reparieren! – Tdorno

+4

Sie laufen wahrscheinlich auf einem Mac oder einem BSD-System. Der BSD-Befehl 'sed' verwendet die Option '-i', erfordert jedoch ein Suffix für die Sicherung (ein leeres Suffix ist jedoch zulässig). Die Bereitstellung grundlegender Plattforminformationen hilft oft. –

Verwandte Themen