1. ホーム
  2. バッシュ

[解決済み】Bashでファイル名と拡張子を抽出する。

2022-03-18 14:58:32

質問

ファイル名(拡張子なし)と拡張子を別々に取得したい。

今まで見つけた最適な解決策は

NAME=`echo "$FILE" | cut -d'.' -f1`
EXTENSION=`echo "$FILE" | cut -d'.' -f2`

これは、ファイル名に複数の . 文字で構成されています。例えば、私が a.b.js を考慮します。 ab.js の代わりに a.bjs .

Pythonでは、次のように簡単に行うことができます。

file, ext = os.path.splitext(path)

が、できればこのためだけにPythonのインタプリタを起動するのは避けたい。

何か良いアイデアはありませんか?

解決方法は?

まず、パスなしでファイル名を取得します。

filename=$(basename -- "$fullfile")
extension="${filename##*.}"
filename="${filename%.*}"

また、パスの最後の'/'に注目することで、'.

filename="${fullfile##*/}"

ドキュメントを確認するとよいでしょう。