4

我想做以下事情,但我似乎找不到一种优雅的方式来做到这一点。

我有一个如下所示的文本文件:

..more values
stuff = 23   
volume = -15
autostart = 12
more values..

现在“音量”值可能会根据情况发生变化。我需要一个脚本,它可以找到带有“volume = xxx”的文本行,然后用“volume = 0”行替换它。什么是优雅的解决方案?正文中的这一行不保证是第一行,所以需要先找到方法。

4

5 回答 5

10
sed 's/^volume =.*/volume = 0/g' file.txt
于 2012-09-30T17:49:59.067 回答
2

使用 sed 你可以说:

sed '/^volume/s/.*/volume = 0/' infile
于 2012-09-30T17:49:40.707 回答
1

将内容通过管道传输到此命令中:

sed -e 's/^volume\s*=\s*-\?[0-9]\+$/volume = 0/'
于 2012-09-30T17:50:27.493 回答
1

sed 's/^volume=\(.*\)$/volume=1/g' inputfile

于 2012-10-01T04:59:34.083 回答
0

@jliu83,阅读正则表达式。这将使 sed 命令中的模式匹配更容易理解。

http://en.wikipedia.org/wiki/Regular_expression

于 2012-09-30T18:50:55.923 回答