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 に答える