LoginSignup
1
1

More than 5 years have passed since last update.

fishでファイル名の拡張子を置き換える

Posted at

bash

bashの場合は変数展開で簡単に置き換えられる。

function extention () {
  echo ${1%.*}.after
}

fish

fishの場合、変数展開が使えないのでどうしようかと考えた結果、string replaceで文字列を置換することにした。

function extention
  echo (string replace -ra '(.*)\\.(.*)' '$1.after' $argv[1])
end

でもfishで関数はやめたほうがいいかも

fishでスクリプトを描こうとすると以下の点が引っかかる。
・ググって出てきた便利なシェルスクリプトはだいたいbashで、fishへの書き換えに文法を調べる時間がかかる
・自作のfishスクリプトを他人に展開しようとすると、まず相手はfishを使っていないのでbashへの書き換えが必要になる
・プロジェクトで使うようなスクリプトはまずbashだと思われるので、普段からfishで書いているとbashに不慣れになる

関数はやめて実行ファイルにして、一つのディレクトリにまとめてからパスを通す方向にしよう。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1