我想做以下事情,但我似乎无法找到一种优雅的方式来做到这一点。
我有一个看起来像这样的文本文件:
..more values
stuff = 23
volume = -15
autostart = 12
more values..
现在,“音量”值可能会根据情况而改变。我需要一个脚本,可以找到带有“volume = xxx”的文本行,然后将其替换为“volume = 0”行。什么是优雅的解决方案?文本中的这一行不保证是第一行,所以我需要一种方法来找到它。
答案 0 :(得分:10)
sed 's/^volume =.*/volume = 0/g' file.txt
答案 1 :(得分:2)
用sed你可以说:
sed '/^volume/s/.*/volume = 0/' infile
答案 2 :(得分:1)
将内容传递给此命令:
sed -e 's/^volume\s*=\s*-\?[0-9]\+$/volume = 0/'
答案 3 :(得分:1)
sed 's/^volume=\(.*\)$/volume=1/g' inputfile
答案 4 :(得分:0)
@ jliu83,对正则表达式做一些阅读。它将使sed命令中的模式匹配更容易理解。