sed更改特定字符串的奇怪行为

时间:2019-07-10 09:26:48

标签: bash sed

我已经在bash中启动了这个小脚本:

for i in {001..020..1}; do
  sed -i "s/mbr001/mbr${i}/" ./mbr${i}/program_1.py
  sed -i "s/mbr001/mbr${i}/" ./mbr${i}/program_2.py
done

但是我注意到很多时候,字符串mbr001保留在某些程序中program_1.py, program_2.py中。在多次启动脚本之后,现在看来mbr001的外观已经更改为它的对应字符串。

我怀疑这种行为是由于sed一旦找到一行中的特定字符串就停止搜索,然后跳到下一个而不考虑同一行中其他出现的情况。

>

您可以确认吗?如何确定sed一次更改所有内容?谢谢。

1 个答案:

答案 0 :(得分:1)

  

您能确认吗?

已确认

  

如何确保sed一次更改所有内容?

添加/g代替每行中的所有匹配项,而不仅仅是第一行