次のように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
うまくいきません。