sedを使用してファイルのバージョン番号を変更する

sedを使用してファイルのバージョン番号を変更する

ファイルのバージョン番号を更新する必要があります。ファイルには、次のようにセマンティックバージョン番号を含む行があります。

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行しか表示されていないので、これがあなたのデータに十分具体的かどうかわかりません。

おすすめ記事