什么是用于mac shell脚本的sed命令,它将用myFile.txt的整个字符串内容替换字符串“fox”的所有迭代.
myFile.txt将是具有换行符和各种字符的html内容.一个例子是
- </div>
- </div>
- <br>
- <div id="container2">
- <div class="question" onclick="javascript:show('answer2')";>
谢谢!
编辑1
这是我的实际代码:
- sed -i.bkp '/Q/{
- s/Q//g
- r /Users/ericbrotto/Desktop/question.txt
- }' $file
当我运行它我得到:
- sed in place editing only works for regular files.
在我的文件中,Q被一大堆汉字(!)替换.离奇!
你可以使用r命令.当您在输入中找到“狐狸”时
- /fox/{
…替换它没有什么…
- s/fox//g
…并阅读输入文件:
- r f.html
- }
如果你有一个文件,如:
- $cat file.txt
- the
- quick
- brown
- fox
- jumps
- over
- the lazy dog
- fox dog
结果是:
- $sed '/fox/{
- s/fox//g
- r f.html
- }' file.txt
- the
- quick
- brown
- </div>
- </div>
- <br>
- <div id="container2">
- <div class="question" onclick="javascript:show('answer2')";>
- jumps
- over
- the lazy dog
- dog
- </div>
- </div>
- <br>
- <div id="container2">
- <div class="question" onclick="javascript:show('answer2')";>
编辑:要更改正在处理的文件,只需将-i标志传递给sed:
- sed -i '/fox/{
- s/fox//g
- r f.html
- }' file.txt
一些sed版本(如我自己的)需要将扩展名传递给-i标志,这将是使用该文件的旧内容的备份文件的扩展名:
- sed -i.bkp '/fox/{
- s/fox//g
- r f.html
- }' file.txt
这里和一个班轮一样,这也兼容Makefile
- sed -i -e '/fox/{r f.html' -e 'd}'