sedはファイル内で検索と置換

sedはファイル内で検索と置換

次のように1行のjsonファイルがあります。

"image": "docker.abc.com/abc-pr0000abc:ABCCoreUI-46",

誰もが次のようにsedコマンドを使用して上記のコマンドを置き換えるのに役立ちますか?

"image": "docker.abc.com/abc-pr0000abc:ABCCoreUI-47",

また、ABCCoreUI-*のようなワイルドカード46が欲しいです。

頑張ったsed s/ABCCoreUI-4*/ABCCoreUI-47/ file.json

出力は、

"image": "docker.abc.com/abc-pr0000abc:ABCCoreUI-4742",

ありがとう

ベストアンサー1

また、ABCCoreUI-*のようなワイルドカード46が欲しいです。

「文字列の末尾の数字と一致するようにパターンを変更します。おそらく、*最後の位置の文字の動作により、出力は47 + 42にリンクされます。」という質問に答えた人がいないと思います。

''回避するために正規表現をラップできます。シェル球

次に、0個以上の数字を一致させます。

sed -r 's/ABCCoreUI-[0-9]*/ABCCoreUI-47/' file.json
sed -r 's/ABCCoreUI-[[:digit:]]*/ABCCoreUI-47/' file.json

0個以上の文字の一致

sed -r 's/ABCCoreUI-.*/ABCCoreUI-47/' file.json
  • -r例 拡張sed正規表現の有効化
  • [0-9]または[[:digit:]](POSIX) 一致番号
  • [0-9]*または[[:digit:]]*0個以上の数字と一致
  • .*0個以上の文字の一致

これは\dうまくいきません。

おすすめ記事