web-dev-qa-db-ja.com

awk-値を変更します

ファイルに含まれています

TIMEOUT=abc
TIMEOUT=5
TIMEOUT=
xTIMEOUT=5

から変更する必要があります

"TIMEOUT=5" 

"TIMEOUT=9"

このコマンドは機能します。
しかし、4行目も変更されます。これは望ましくありません。

awk '$0 ~ "TIMEOUT=[:0-9:]" { $0 = "TIMEOUT=9" } {print}' file

そして、このコマンドは何も変更しません

awk '$0 == "TIMEOUT=[:0-9:]" { $0 = "TIMEOUT=9" } {print}' file

私は何をすべきか?ありがとう!

1
Shila

これは行う必要があります:

awk '/^TIMEOUT=[:0-9:]/ { $0 = "TIMEOUT=9" } {print}' file

またはさらに簡単:

sed 's/^TIMEOUT=[0-9]/TIMEOUT=9/' file
1
Stephen Rauch