Ich bin frustriert genug, dass ich dachte, es war Zeit, eine Frage zu stellen.Mit grep und xargs, vermeiden 'unterminated quote' Fehler
Ich versuche, eine E-Mail-Adresse über eine Website zu ersetzen, die in 1000 von Seiten fest codiert ist. Es ist auf einem FreeBSD 6.3 Server. Hier
ist der Befehl, die ich benutze:
grep -R --files-mit-matches 'E-Mail \ @ domain.com'. | sortieren | uniq | xargs perl -pi -e 's/Email \ @ domain.com/Email \ @ newdomain.com /' * .html
Und hier ist der Fehler, die ich erhalte:
xargs: ungekündigten Zitat
Seltsamerweise, wenn ich diesen Befehl auf einen Testfall von 3 Dateien ausführen (in einer verschachtelten Struktur) funktioniert es gut. Ich habe gegoogelt und die meisten Lösungen scheinen sich damit zu beschäftigen, nach dem ein .print0 hinzuzufügen. und ein -0 nach den Xargs. Dies führt jedoch zu einer anderen Reihe von Fehlern, die dazu führen, dass ich glaube, dass ich die Dinge an den falschen Stellen veröffentliche.
Vielen Dank im Voraus für Ihre Hilfe
Danke für die schnelle Antwort. Wenn ich versuche, das -print0 hinzuzufügen, bekomme ich Folgendes: jhmail # grep -R - Dateien mit Übereinstimmungen 'FineArt \ @ westliveson.com'. -print0 | xargs -0 perl -pi -e's/FineArt \ @ westliveson.com/FA \ @ westliveson.com/' grep: ungültige Option - p Verwendung: grep [OPTION] ... PATTERN [DATEI] .. Versuchen Sie 'grep --help 'für weitere Informationen. –
Unter FreeBSD verwenden Sie "--null" anstelle von "-print0" – kcwu
Perfekt! Vielen Dank für Ihre Hilfe. Sehr geschätzt. –