Abgleichen einer bestimmten Zeile, die mit einem doppelten Schrägstrich beginnt, mithilfe von sed

Abgleichen einer bestimmten Zeile, die mit einem doppelten Schrägstrich beginnt, mithilfe von sed

Ich habe derzeit einen sed-Befehl, der eine bestimmte Phrase in einer Datei abgleicht und alle Zeilen dieser Datei durch den vollständigen Text einer anderen Datei ersetzt. Dies funktioniert für die Phrase „### ALLES NACH DIESER ZEILE ERSETZEN ###“

sed -n -e '1,/^### REPLACE EVERYTHING AFTER THIS LINE ###$/{ p; d; }' \
       -e 'r replacement_file.txt' \
       -e 'q' original_file.txt > original_file.txt.new &&
mv original_file.txt.new original_file.txt

Dieser Befehl funktioniert für Textdateien, aber da ich Dateien durch Kommentare im Javascript-Stil ersetzen muss, bin ich auf ein kleines Problem gestoßen. Die neue Zeile/Phrase, die ich abgleichen möchte, ist jetzt die folgende (und beachten Sie, dass ich abgleichen möchteDasbestimmter Kommentar, nicht alle Kommentare, die mit dem doppelten Schrägstrich beginnen):

//REPLACE AFTER THIS

Ich bin auf ein Problem gestoßen, da ich derzeit nicht in der Lage bin, den doppelten Schrägstrich zu maskieren. Ich habe versucht, die beiden Zeichen mit einem Backslash zu maskieren, aber das hat nicht funktioniert. Mein aktueller (nicht funktionierender) Befehl ist der folgende:

sed -n -e ‘1,/^\/\/REPLACE AFTER THIS$/{ p; d; }’\ 
       -e 'r replacement_file.txt' \
       -e 'q' original_file.txt > original_file.txt.new && mv original_file.txt.new original_file.txt

Dank im Voraus.

Antwort1

Vielen Dank an alle, die Kommentare abgegeben haben. Zusätzlich zur Korrektur des nicht-ASCII-Anführungszeichens ist hier der funktionierende Befehl:

sed -n -e '1,\|^//REPLACE TEST$|{ p; d; }' \
    -e 'r replacement_file.txt' \
    -e 'q' original_file.txt > original_file.txt.new && mv original_file.txt.new original_file.txt

verwandte Informationen