文字列から2番目と最後のフィールドをキャプチャ

文字列から2番目と最後のフィールドをキャプチャ

次のファイル名形式のファイルがあります。

VER_{ファイル名}_{バージョン}

はい

  VER_collect_important_info.pl_1.0.2

私たちは「ファイル名」と「バージョン」番号だけをキャプチャしたいと思います。

「ファイル名」と「バージョン」をキャプチャできるように、ファイル名から最初の_と最後の_を削除するにはどうすればよいですか(sed / awkまたはPerl one-linerを使用)

はい

 echo VER_collect_important_info.pl_1.0.2 | <some syntax>

 collect_important_info.pl  1.0.2

ベストアンサー1

Perlは軽い選択肢よりも私にもっと自然な感じを与えます。

echo VER_collect_important_info.pl_1.0.2 | perl -pe 's/^[^_]*_(.*)_(.*)$/$1 $2/'

これが必要以上に重い重みを使用することが重要でない場合は、ここで停止します。

sedはこれを行うことができますが、括弧などの基本要素をエスケープする必要があることは面倒です。

echo VER_collect_important_info.pl_1.0.2 | sed 's/VER_\(.*\)_\(.*\)/\1 \2/'

おすすめ記事