Shell-Script
清除兩個特定行之間的文本並添加新值
我自己在寫一個腳本。但我需要你的幫助
我有一個如下文件(test.md):
sometext sometext <!--SEPERATOR1--> text to be deleted foobar to be deleted foooooooooooobar foobaaaaaaaaaaar <!--SEPERATOR1--> sometext sometext
我想清理此文本文件(test.md)中由“SEPERATOR1”分隔的部分中的文本並添加新文本。我該怎麼做,謝謝。
預期輸出:
sometext sometext <!--SEPERATOR1--> new text butterfly foo bar etc. <!--SEPERATOR1--> sometext sometext
您可以使用命令
sed
指定範圍來更改文本:/startpattern/,/endpattern/``c
sed '/<!--SEPERATOR1-->/,/<!--SEPERATOR1-->/c<!--SEPERATOR1-->\nnew text\nbutterfly\nfoo bar etc.\n<!--SEPERATOR1-->' filename.txt
用於
\n
結果中的換行符。您可以
> newfilename.txt
在末尾添加以將輸出重定向到文件,或添加-i
標誌以更改文件(儘管具體語法因 sed 版本而異)。但我是否也可以建議更改
SEPERATOR
為SEPARATOR
- 如果其他人在以後必須維護您的程式碼,而後者使用更“傳統”的拼寫方法,甚至可能是您的舊版本,這樣的事情可能會非常煩人。