at backyard

Color my life with the chaos of trouble.

bashちょいメモ

bashでちょっとしたスクリプトを書こうと思ったときに、あれ、これどうやるんだっけ?って何回かなったので、それらの解決方法をまとめておく

ちなみに全然どうでもいいことですが、最近FF5のサントラをよく聴き返しています。私が最もやり込んだRPGです。

FINAL FANTASY V (Original Soundtrack)

FINAL FANTASY V (Original Soundtrack)

  • 植松 伸夫
  • テレビゲーム
  • ¥2400
music.apple.com

指定したディレクトリ内のファイルに対してそれぞれ処理を行いたいとき

すんごく基本的なことだと思うが、もうググらないと書けないほどには忘れていました

#!/bin/bash
for f in $(ls hogehoge/*.HEIC); do
    echo $f
done

hogehogeディレクトリ内に存在する.HEIC拡張子のファイルだけ表示します。

取得したファイルの拡張子を変更したいとき

これは忘れていたというか、知らなかったのですが、下記のように書くと拡張子変更してくれるようです。

#!/bin/bash
for f in $(ls hogehoge/*.HEIC); do
    echo ${f%.HEIC}.bmp
done

この場合.HEIC.bmpに変更した上で表示されます。

取得したファイルのディレクトリ名だけ変更したいとき

#!/bin/bash
for f in $(ls hogehoge/*.HEIC); do
    bmpfile=${f%.HEIC}.bmp
    bmppath=fugafuga/${bmpfile##*/}
    echo $bmppath
done

これで下記のような形で、ディレクトリ名だけ変更されたファイルが表示されます。

fugafuga/001.bmp
fugafuga/002.bmp
fugafuga/003.bmp
...

参照させていただいたポスト

qiita.com

qiita.com