次のファイル名形式のファイルがあります。
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/'