ファイルのバージョン番号を更新する必要があります。ファイルには、次のようにセマンティックバージョン番号を含む行があります。
foo.bar.blah.blub#10.6.1
それでは、「blah.blub」プレフィックスを見つけて正しい行を識別し、バージョン番号を変更したいと思います。
私が得た以下は明らかに動作しません。
sed -i -e 's/^blah.blub#\d\.\d\.\d$/blah.blub'${VERSION}/$ README.MD
ベストアンサー1
Sedはデフォルトでデフォルトの正規表現を使用しますが、ほとんどの実装(使用中のように見えるGNU実装を含む)はそれを理解していません\d
。また、あなたの行はで始まらないので一致しないという意味ですblah.blub
。^
そして他の様々な問題。
これにより、必要な操作が実行されます。
sed -i -E "/blah\.blub#/s/#.*/#$VERSION/" README.MD
これにより、aの後のテキストが#
の内容に置き換えられます$VERSION
。ただし、その行にが含まれている場合にのみ適用されますblah.blub
。これで1行しか表示されていないので、これがあなたのデータに十分具体的かどうかわかりません。