プロが教えるわが家の防犯対策術!

シェルスクリプト初心者です
よろしくお願いします。

変更前
video(1).mp4
video(2).mp4
video(3).mp4
.
.
video(10).mp4
video(11).mp4

変更後
1.mp4
2.mp4
3.mp4
.
.
10.mp4
11.mp4

forでファイル作成をしたりrenameコマンドで拡張子の変更などはできるんですが、
ファイル名の特定部分を変更することができません。
sedコマンドも調べていたんですがイマイチ理解できず。
配列にファイル名を入れて一つずつ正規表現で変更していくと思うんですが。。。

ちなみにrubyでは上記の変更はできました。

ご意見をいただければ幸いです。

A 回答 (1件)

スクリプトの種類が提示されていないのでbash前提で書きました。


-------------------------
#! /bin/bash
files="*(*).mp4"
fnames=()
for fname in $files; do
fnames+=("$fname")
done

for fname in ${fnames[@]}; do
echo $fname
tofname=${fname#*(}
tofname=${tofname/)/}
echo $tofname
mv $fname $tofname
done
--------------------------------
カレントディレクトリ下の
*(*).mp4にマッチするするファイルを全て取得して
ファイル名を変更しています。
途中経過が判るようにechoを行っています。不要であれば削除してください。
ファイル名を変更するのでファイルのバックアップを取ってから実行してください。
下記URLが参考になるかと。
http://wordpress.honobono-life.info/code/bash%E3 …

http://d.hatena.ne.jp/ozuma/20130928/1380380390
    • good
    • 0
この回答へのお礼

ありがとうございます!
上記スクリプトで問題なく書き換えできました!

ちなみに環境はos xデフォルトのbashでした
URLを参考にして今後も精進します

ありがとうございます!

お礼日時:2017/03/29 20:52

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!