bash – 使用文件的内容使用SED替换字符串

前端之家收集整理的这篇文章主要介绍了bash – 使用文件的内容使用SED替换字符串前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
什么是用于mac shell脚本的sed命令,它将用myFile.txt的整个字符串内容替换字符串“fox”的所有迭代.

myFile.txt将是具有换行符和各种字符的html内容.一个例子是

  1. </div>
  2. </div>
  3. <br>
  4. <div id="container2">
  5. <div class="question" onclick="javascript:show('answer2')";>

谢谢!

编辑1

这是我的实际代码

  1. sed -i.bkp '/Q/{
  2. s/Q//g
  3. r /Users/ericbrotto/Desktop/question.txt
  4. }' $file

当我运行它我得到:

  1. sed in place editing only works for regular files.

在我的文件中,Q被一大堆汉字(!)替换.离奇!

你可以使用r命令.当您在输入中找到“狐狸”时
  1. /fox/{

…替换它没有什么…

  1. s/fox//g

…并阅读输入文件

  1. r f.html
  2. }

如果你有一个文件,如:

  1. $cat file.txt
  2. the
  3. quick
  4. brown
  5. fox
  6. jumps
  7. over
  8. the lazy dog
  9. fox dog

结果是:

  1. $sed '/fox/{
  2. s/fox//g
  3. r f.html
  4. }' file.txt
  5. the
  6. quick
  7. brown
  8.  
  9. </div>
  10. </div>
  11. <br>
  12. <div id="container2">
  13. <div class="question" onclick="javascript:show('answer2')";>
  14. jumps
  15. over
  16. the lazy dog
  17. dog
  18. </div>
  19. </div>
  20. <br>
  21. <div id="container2">
  22. <div class="question" onclick="javascript:show('answer2')";>

编辑:要更改正在处理的文件,只需将-i标志传递给sed:

  1. sed -i '/fox/{
  2. s/fox//g
  3. r f.html
  4. }' file.txt

一些sed版本(如我自己的)需要将扩展​​名传递给-i标志,这将是使用该文件的旧内容的备份文件的扩展名:

  1. sed -i.bkp '/fox/{
  2. s/fox//g
  3. r f.html
  4. }' file.txt

这里和一个班轮一样,这也兼容Makefile

  1. sed -i -e '/fox/{r f.html' -e 'd}'

猜你在找的Bash相关文章