shell
ターミナル
シェルスクリプト

シェルの使い方を覚えて繰り返し作業や単純作業を効率化

シェルスクリプトの始め方

シェルスクリプトを使うことで業務効率化できます。
特にフォルダやファイルの整理ですごく便利に感じました。

基本の実行方法

test.sh
echo "abcde"
test.shを実行
$sh test.sh
abcde
repeat.shの実行結果
test

繰り返しの実行方法

repeat.sh
for (( i = 0 ; i < 10 ; i++ )) do
  echo $i;
done
repeat.shの実行結果
0
1
2
3
4
5
6
7
8
9

連番での繰り返し処理

連番のディレクトリを作成
for id in `seq -f %03g 1 999`
do
  mkdir $id  #連番のフォルダ作成
done

空のフォルダを検索削除

空のフォルダを検索
find . -type d -empty
空のフォルダを削除
find . -type d -empty -delete

ファイル・フォルダがある分だけ実行

findコマンドを利用してフォルダーにあるファイルを取得して繰り返し。

全てのカレントファイルにそれぞれ実行
for file in `\find . -maxdepth 1 -type f`; do
    #ここに実行したいコマンドを実行。
    #ディレクトリ移動などのコマンドを入れるとうまく動かない
    
    echo 'test' >> $file #全てのファイルに「test」を追加

done

全てのディレクトリにsampleフォルダを作成することができます。

全てのディレクトリにsampleフォルダを作成
for file in `\find . -maxdepth 1 -type d`; do
    mkdir sample #繰り返しの部分
done
2階層下の(img)フォルダにあるファイルを一階層上のフォルダに一つだけコピー
for dir in `\find . -maxdepth 1 -type d`; do
  for file in `\find $dir/img -name "*.jpg" -maxdepth 1`; do
    echo $file
    cp $file $dir/main_img.jpg
    break
  done
done