Сопоставление определенной строки, которая начинается с двойной косой черты, с использованием sed

Сопоставление определенной строки, которая начинается с двойной косой черты, с использованием sed

В настоящее время у меня есть команда sed, которая соответствует определенной фразе в файле и заменяет все строки этого файла полным текстом другого файла. Это работает для фразы "### ЗАМЕНИТЬ ВСЕ ПОСЛЕ ЭТОЙ СТРОКИ ###"

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

Эта команда работает для текстовых файлов, но при необходимости заменить файлы с комментариями в стиле javascript я столкнулся с небольшой проблемой. Новая строка/фраза, которую я пытаюсь сопоставить, теперь выглядит следующим образом (и обратите внимание, что я хочу сопоставитьэтотконкретный комментарий, а не все комментарии, начинающиеся с двойной косой черты):

//REPLACE AFTER THIS

Я столкнулся с проблемой, поскольку в настоящее время мне не удается экранировать двойной прямой слеш. Я пробовал экранировать два символа с помощью обратного слеша, но это не сработало. Моя текущая (нерабочая) команда выглядит следующим образом:

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

Заранее спасибо.

решение1

Спасибо всем, кто прокомментировал, в дополнение к исправлению не-ASCII цитаты, вот рабочая команда:

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

Связанный контент