使用 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

相關內容