我目前有一个 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