使用 sed 匹配以双正斜杠开头的特定行

使用 sed 匹配以双正斜杠开头的特定行

我目前有一个 sed 命令,它匹配文件中的特定短语,并用另一个文件的全文替换该文件的所有行。这适用于短语“### REPLACE EVERYTHING AFTER THIS LINE ###”

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

相关内容