@likukawa
Revisions
Report this question
Subscribe question
Help us understand the problem. What is going on with this question?
Q&A
Closed

ターミナルの「basename」コマンドについて

ターミナルの「basename」コマンドについて

ファイル名だけを抽出できるbasenameですが、 例えば ~/A/Bのディレクトリ にXXX.txtとYYY.txtとZZZ.txt.gzという3つのファイルがあるとします。

ターミナルで動かすと
$ basename ~/A/B/XXX.txt .txt
XXX
になるのはわかります。
しかし例えば.txtファイルを全て抜き出して.txtを取り除きたいときに

$ basename ~/A/B/*.txt
XXX.txt
YYY.txt
となりますが

$ basename ~/A/B/*.txt .txt
XXX.txt
YYY.txt
.txt

となってしまいます。
この場合指定した末尾のファイルの拡張子だけを消して表示させたい時はどうすればいいのでしょうか?

初心者なので初歩的な質問ですみません。

0
2
Answer
Report this answer

basename ファイル名 拡張子 の形式ではファイル名は1つしか書けません。別の形式として basename -s 拡張子 ファイル名1 ファイル名2 ... と書くこともできます。

$ basename -s .txt ~/A/B/*.txt

と実行すればよいでしょう。

これは man basename で表示できるマニュアルに書いてあります。

0

ありがとうございます。 助かりました。

0
Help us understand the problem. What is going on with this answer?
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした