ソフトウェア

bashで、ファイルの拡張子を取り除く方法|linux

投稿日:

soft

ファイル単位の編集では、シェルを使った方が楽な場合がありますね。

bash Tips

bashでファイル拡張子を使う方法をちょっと試してみました。

やってみたいこと

ファイルのファイル名を取得したい。例えば、aa.txtとあれば、aaだけを取り出したい。

以下の感じで、取り除けます。

反対に拡張子を抽出する場合は、こうします。

つまり、変数を%でつなぐと、後方一致

#は前方一致になります。

別の実現方法

もう少し進めると、変数に格納された文字列を変更することもできます。

sedぽく変換できます。

sedでやらすなら、一応、変数(x)に入れてみます。

>x=echo ${file_name}|sed 's/.txt//g'
>echo $x
aa

ただ、sedでやるよりは、bashの置換を使う方法の方がいいように思います。

sedを知ってる人は、頑なにsed使う人いますけど、嫌いじゃないです、、

スポンサーリンク

おまけ

じゃ、aa.txt.bkの拡張子を取り出す場合はどうするの?これまでの方法だと以下なんですが、私は、”bk"だけ取り出したかったのに、、、
思う場合もあると思うのです。

その場合、##を使います。

そうすると、最長マッチになります。これは、後方マッチ(%)の時も同じなので同じように使えます。

うーん、便利ですね。

お好みのものを覚えておくといいと思います。

余談

もはや、余談ですが、csh系だとこうやって書きます。(懐かしい、、、と思った人は、おじさんか、おばさん(笑))

では、お後がよろしいようで。

関連記事:

bashで、ディレクトリ内のファイルを全部同じ処理をする方法|linux

スポンサーリンク

-ソフトウェア

Copyright© InterDimension:インタディ , 2020 All Rights Reserved Powered by STINGER.