Linuxのbasenameコマンドを使うことで、ファイル名からディレクトリや拡張子を除去できます。
basenameコマンドの使い方
basenameコマンドの書式は以下の通りです。
1 |
basneme ファイル [末尾から除去する文字列] |
basenameコマンドは文字列を加工して表示するものであり、ファイル自体の存在チェックは行いません。
ファイル名のみを表示する
ファイル名のみを表示する場合は、以下のようにファイルパスを指定します。
1 2 |
$ basename /home/user/data.txt data.txt |
コマンドを実行するとファイル名のみが表示されます。
ファイル名の末尾を削除
1つ目の引数にファイルパスを指定し、2つ目の引数には除去したい文字列を指定します。
1 2 |
$ basename data.txt .txt data |
この例では、.txtと指定したファイル名の末尾が一致するので、dataという文字列が表示されます。
また、「-s」オプションの後に除去したい文字列を指定し、その後にファイル名を指定することで上の例と同じ動作になります。
1 2 |
$ basename -s .txt data.txt data |
もし除去する文字列がファイル名の末尾と一致しなかった場合は、指定したファイル名がそのまま表示されます。
1 2 |
$ basename data.txt .jpg data.txt |
複数ファイルを指定する
「-a」オプションを使うことで複数のファイルを同時に指定できます。
1 2 3 |
$ basename -s .txt -a data.txt data2.txt data data2 |
「-a」オプションを使うときに除去する文字列を指定したい場合は、「-s」オプションを使って文字列を指定します。