在linux中查找字符串并替换行

jli*_*u83 3 linux replace sed find

我想做以下几点,但我似乎无法找到一种优雅的方式来做到这一点.

我有一个看起来像这样的文本文件:

..more values
stuff = 23   
volume = -15
autostart = 12
more values..
Run Code Online (Sandbox Code Playgroud)

现在,"音量"值可能会根据情况而改变.我需要一个脚本,可以找到带有"volume = xxx"的文本行,然后将其替换为"volume = 0"行.什么是优雅的解决方案?文本中的这一行不保证是第一行,所以我需要一种方法来首先找到它.

Lev*_*sky 10

sed 's/^volume =.*/volume = 0/g' file.txt
Run Code Online (Sandbox Code Playgroud)

  • 谢谢,为什么,我可以问,我不应该管道到同一个文件?我猜测某种与阅读和写入同一文件有关的竞争条件? (2认同)