sed +二重引用符内の設定値

sed +二重引用符内の設定値

ファイルはそうです

more /etc/sysconfig/chronyd
# Command-line options for chronyd
OPTIONS=""

-4内部に値を設定する必要があります。""

ファイルは次のようになります。

# Command-line options for chronyd
OPTIONS="-4" 

sed は次のように使用できます。

sed -i s'/OPTIONS=""/OPTIONS="-4"/g' /etc/sysconfig/chronyd

しかし、これは良いオプションではありません。 (二重引用符内にスペースがある場合)

例えば、

more /etc/sysconfig/chronyd
# Command-line options for chronyd
OPTIONS=" "

ベストアンサー1

次は動作するはずです。

  • space場合任意に選択できる
sed -r 's/OPTIONS="[[:space:]]?"/OPTIONS="-4"/g'
  • space場合少なくとも1つ
sed -r 's/OPTIONS="[[:space:]]+"/OPTIONS="-4"/g'

または[@AdminBeeが述べたように]2つの可能性があります。

  • space場合少なくとも1つまたは任意に選択できる
sed -r 's/OPTIONS="[[:space:]]*"/OPTIONS="-4"/g'

例えば、

[arif@arif]$ printf '# Command-line options for chronyd\nOPTIONS=" "\n'
# Command-line options for chronyd
OPTIONS=" "
[arif@arif]$ printf '# Command-line options for chronyd\nOPTIONS=" "\n' | sed -r 's/OPTIONS="[[:space:]]"/OPTIONS="-4"/g'
# Command-line options for chronyd
OPTIONS="-4"

おすすめ記事