Bash でファイル名と拡張子を抽出する方法

Bash Defairu Mingto Kuo Zhang Ziwo Chou Chusuru Fang Fa



Bash は、Linux および Unix オペレーティング システムで一般的に使用される強力なコマンド ライン シェルです。 Bash でファイルを操作する際の一般的なタスクの 1 つは、ファイル パスからファイル名と拡張子を抽出することです。この記事では、Bash でファイル名と拡張子を抽出する方法について説明し、これらの値をスクリプトで使用する方法の例を示します。

Bash でのファイル名と拡張子の抽出

Bash でファイル名と拡張子を抽出するには、いくつかの方法があります。ここでは、3 つの一般的な方法を示します。







1: Basename コマンドの使用

basename コマンドは、ファイル パスからファイル名を返し、ファイル名と拡張子を抽出します。を使用できます。 basename コマンド -サフィックス 以下のコードのように、指定された接尾辞をファイル名から削除します。



#!/ビン/バッシュ
# ファイルパスの例
ファイルパス = 「/path/to/file.txt」

# ファイル名を抽出
ファイル名 =$ ( basename $file_path )

# 拡張子を抽出
拡大 = ' ${ファイル名##*.} '

エコー 'ファイル名: $ファイル名 '
エコー '拡大: $拡張子 '







2: パラメータ展開の使用

パラメータ展開 構文は、文字列を操作できる Bash の強力な機能です。パラメータ展開を使用してファイル名と拡張子を抽出するには、 ${パラメータ##単語} 以下のコードのように、パラメーターの先頭から指定されたパターンの最長一致を削除します。

#!/ビン/バッシュ
# ファイルパスの例
ファイルパス = 「/path/to/file.txt」
# ファイル名を抽出
ファイル名 = ' ${file_path##*/} '
# 拡張子を抽出
拡大 = ' ${ファイル名##*.} '
エコー 'ファイル名: $ファイル名 '
エコー '拡大: $拡張子 '



3: IFS (Internal Field Separator) 変数の使用

IFS変数 を設定することにより、文字列をフィールドに分割するために Bash によって使用されます。 IFS変数 パス区切り記号 (「/」) に追加します。以下のコードを使用して、この変数を介してファイル パスからファイル名と拡張子を抽出できます。

#!/ビン/バッシュ
# ファイルパスの例
ファイルパス = 「/path/to/file.txt」
# IFS を '/' に設定
IFS = '/' 読む -r -a 部品 <<< ' $file_path '

# ファイル名を抽出
ファイル名 = ' ${部品[-1]} '
# 拡張子を抽出
拡大 = ' ${ファイル名##*.} '
エコー 'ファイル名: $ファイル名 '
エコー '拡大: $拡張子 '

結論

ファイル パスからファイル名と拡張子を抽出することは、Bash でファイルを操作する場合の一般的なタスクです。この記事では、Bash でファイル名と拡張子を抽出するための 3 つの一般的な方法について説明しました。を使用することにより、 basename コマンド、 パラメータ展開 構文、または IFS変数 を使用すると、ファイル パスからファイル名と拡張子の値をすばやく簡単に抽出できます。