拡張子なしでファイル名を変更する方法

拡張子なしでファイル名を変更する方法

アプリケーションが理解できるように、プログラムで名前を変更する必要がある多くのファイルがあります。

形式は次のとおりです。 名前を変更するファイル

最後から最初の_まで切り、点(.)に置き換える必要があります。

ファイル名の長さやファイル名の_個数があらかじめわからないので、awk/sed/cutのアイデアはありますか?

ベストアンサー1

for F in *_*; do echo mv -- "${F}" "${F%_*}.${F##*_}"; done

出力が正しいと思われる場合は、echo上記のコマンドを削除してください。

ヒントは${F%_*}最後のものを削除し_26${F##*_}最後のものより前のすべてを削除することです_。どのように機能するかを見るには、次のコマンドを試してください。これで、区切り記号は次のようになります:

echo "${PATH}"
echo "${PATH%:*}"
echo "${PATH##*:}"
echo "${PATH%:*}_${PATH##*:}"

おすすめ記事