
Ich muss alle Zeilen, die „dlclose“ enthalten, für jede Datei im aktuellen Verzeichnis und allen Unterverzeichnissen (rekursiv) auskommentieren. Das ist meine bisher beste Vermutung, basierend auf dem, was ich aus verschiedenen Anleitungen herausfinden konnte.
grep -lIR "dlclose" . | grep -v ".svn" | sed -i 's/.*dlclose.*/\/\/&/g'
Die beiden Greps finden erfolgreich alle Dateien, die ich ändern möchte, aber es sed
wird eine Fehlermeldung angezeigt unterminated s command
.
Antwort1
Sie versuchen, direkt vor Ort zu bearbeiten (-i
Möglichkeit) DieSTDIN
.
Entfernen-i
Option, es ist nutzlos.
Notiz:
Sie können den Befehl erheblich beschleunigenVermeidung des zweiten Grep, wobei die unnötigen Verzeichnisse im Stammverzeichnis ausgeschlossen werden
Versuchen
grep -lIR --exclude-dir=.svn "dlclose" . | xargs sed -i bak 's/.*dlclose.*/\/\/&/g'
oder
for f in $(grep -lIR --exclude-dir=.svn "dlclose" .)
do
sed -i bak 's/.*dlclose.*/\/\/&/g' $f
done