#やりたいこと
フォルダ内のデータ(名前)を取得します。
本記事ではフォルダ内ファイルの拡張子を.txtから.logに変更するループ文のシェルスクリプトを紹介します。
#コード紹介
現在のフォルダの状況
実行前の状況
$ ls
1.txt 2.txt 3.txt 4.txt 5.txt main.sh
main.sh
#!/bin/sh
for filename in *.txt
do
mv ${filename} ${filename%.txt}.log
done
#実行例
main.shの実行
sh main.sh
実行後の状況
$ ls
1.log 2.log 3.log 4.log 5.log main.sh
.txt拡張子が.logに変更されていることがわかります。
#おまけ
何十万のデータに番号をつけたい場合も利用できますね。
for分の途中でカウンタを文字列付与すれば一気に大量のデータに番号をつけることもできます。
main.sh
#!/bin/sh
cnt=1
for filename in *.txt;
do
mv ${filename} data_${cnt}.log;
#cnt変数のインクリメント
cnt=`expr ${cnt} + 1`
done
実行後の状況
$ ls
data_1.log data_2.log data_3.log data_4.log data_5.log main.sh