Diese Frage hat hier bereits Antworten :

Kommentare

  • Sie möchten sed, nicht grep. Außerdem verwenden Sie ' " intelligente " Anführungszeichen, sodass grep nach den Anführungszeichen sucht Literalzeichenfolge “string”, einschließlich der Anführungszeichen. Sie möchten "string" (oder wahrscheinlich sogar 'string', es sei denn, Sie möchten die Parametererweiterung im Suchbegriff verwenden).
  • grep wird nicht ' nicht zum Ersetzen von Zeichenfolgen verwendet. Es ' wird zum Suchen von Zeichenfolgen verwendet. Um sie zu ersetzen, benötigen Sie sed oder awk.
  • Also wäre es so etwas wie
  • sed –recursive –ignore-case " Zeichenfolge ", " Ersetzung -string "
  • Verwandte Themen: Suchen und Ersetzen mit grep (nicht sed) – jedoch Sie könnten grep --recursive --files-with-matches verwenden, um eine Liste von Dateinamen zu erstellen, die an sed
  • <übergeben werden sollen / ul>

Antwort

Versuchen Sie diesen Befehl

grep -rl "wavbyte" somedir/ | xargs sed -i "s/wavbyte/gitship/g" 

Sie können Versuchen Sie find und sed

find /some_path -type f -exec sed -i "s/oldstring/newstring/g" {} \; 

Kommentare

  • Ersetze ich " matchstring " durch die neue oder alte Zeichenfolge und was, wenn ich möchte Um dies aus dem Stammverzeichnis des Servers zu tun?
  • Zum Beispiel, wenn ich " wavbyte " mit " gitship " von Das Stammverzeichnis des Ubuntu-Servers wäre:
  • find / -type f -exec sed -i ' s / wavbyte / gitship / g ' {} \;
  • Richtig, aber Wavbyte befindet sich an vielen verschiedenen Stellen auf dem Server. Wie werde ich all diese Orte auswendig lernen und dann von Hand hineingehen und zum Gitship wechseln?
  • Lassen Sie uns diese Diskussion im Chat .

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.