未定義の文字列を変更するには、sedを使用してください。

未定義の文字列を変更するには、sedを使用してください。

sedを使用して、example = "value"行を含む"case"という文書を変更する必要があります。ここで、valueは2〜3文字の整数を使用できます。たとえば、次のようになります。

example=55
example=777
otherthing=anothervalue

sedを使用して、2つのサンプルラインを次の2つのラインに変更したいと思います。 example=000

使ってみました。

sed -i -e "s/example=*/example=000/g" case 

同時に修正しましたが、明らかに動作しません。私が知る必要があるのは、sedが後ろに2〜3文字を取るようにする方法です。=

答え1

*forのさまざまな意味を混同しています。シェルファイル名拡張子そしてPosix 基本正規表現BRE)。

正規表現では、*先行する文字の数量子なので、=*ゼロ個以上の発生を意味します=。 「任意の文字数」が必要な場合はを使用してください.*

sed -i -e 's/example=.*/example=000/' case 

追加のヒント:

  • g文字列は1行に1回しか表示されないため、修飾子を省略できます。
  • もしあなたならいいえまた、一致させるには、another_example=valueこれを使用して行の先頭に^example=.*あることを確認してください。example
  • .[0-9]または、[[:digit:]]]文字は使用できず、数字のみを一致させることができます。
  • *代わりに数量子を使用できます+。これは次のことを意味します。1文字以上(GNUで\+通常のようにエスケープまたは作成する必要があります)。BREsed\{1,\}sed

2〜3文字だけを一致させるにはできます。

sed -i -e 's/example=.\{2,3\}/example=000/' case 

または、拡張正規表現(ERE)(sed -E)を使用します。

sed -i -E -e 's/example=.{2,3}/example=000/' case 

関連情報