![]() |
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。
|
|
Googleのunix.com
|
|||||||
| シェルプログラミングとスクリプティング KSH 、 CSH 、 shに、 bashの、はPerl 、 PHPは、削除するsed 、 Awkの、他のシェルスクリプトやシェルスクリプト言語についての質問の投稿はこちら。 |
その他のUNIXおよびLinuxフォーラムトピックは参考にすること
|
||||
| スレッド | スレッドスターター | フォーラム | 返信 | 最後の投稿 |
| rootのパスワードを変更 | bullz26 | Sun Solaris | 2 | 2008年3月30日 12:09午後 |
| どのようにrootのパスワードを変更します。 | angelofhell | HP - UX | 3 | 2008年2月25日 06:44午前 |
| rootのパスワードを変更する | duke0001 | Sun Solaris | 3 | 2007年2月22日 12:10午後 |
| どうすれば拡張子を変更する | kswaraj | シェルプログラミングとスクリプティング | 2 | 2004年6月28日 09:07午後 |
| 拡張子を変更する方法は? | prkwan | シェルプログラミングとスクリプティング | 4 | 2002年11月16日 07:14午後 |
![]() |
|
|
LinkBack | スレッドツール | このスレッドを検索 | スレッドを評価 | 表示モード |
|
|
|
||||
|
ルートおよびサブディレクトリからファイルの拡張子を変更する
こんにちは、私の最初の投稿!
私はこのスクリプトを支援、これに新たなんだいただければと思います。 私はイメージから変換するバッチファイル名を求めているのはメディアのディレクトリがある。をイメージ。等。 私は試みたが、手に入ります: $ ./img2iso2.sh ./img2iso2.sh :行13 :構文エラー:予期しないファイルの終わり ![]() これは私の未完成のスクリプトです: コード:
#!/bin/bash
# Set the video directory here
VIDEO_ROOT_DIRECTORY="/Users/astrid/NFS/scripts/img2iso/";
# Check if the directory exist or not
if [ -d "$VIDEO_ROOT_DIRECTORY" ]; then
cd $VIDEO_ROOT_DIRECTORY
else
print "ERROR: Unable to reach directory - or it does not exist!";
fi
for imgfile do
case $imgfile *.img
do mv $imgfile.img $imgfile.iso;
done
print "img-files renamed to iso";
esac
done
exit 0
また、私はそれをチェックのいくつかの並べ替えをスマートだと思うよ: image.isoがある場合は、ファイルと呼ばれ、 1つは同じ(サブimage.img )ディレクトリと呼ばれる、私はの名前を変更したいのですが。画像にimgファイル- 1.iso。しかし、私もここで、このチェックを開始することはありません! 私はそこに問題の言葉を引用する場合は、エラーメッセージを理解するのか?私はもう、多くの臨床試験を開始したので、覚えてないことができますされています。 任意の仕方も大歓迎です。 編集: 私は、ファイルの拡張子の交換を行うには良い方法を発見フォーラム調査(ここで)は、サブディレクトリに幸運ではなく、私でした。 アストリッドの編集最終更新、 2008年2月15日に 03:43午後.. |
|
||||
|
クイック返信robotronicしていただきありがとうございます。
しかし、私は私が仕事を得ることができなかったと言うに申し訳なく思っている。 このスクリプトを取得し、私は再びプロンプトが表示がない場合は、どこかがうまくいかないのですが実行され、私はダミーのディレクトリに移動しますが、利用にいくつかのフィードバックを呼び出すためには、ビデオのルートを変更しようとした。 ![]() 私は"タッチ"は、指定したディレクトリとサブディレクトリ内にいくつかのダミーファイルを作るために使用した:同じ名前が異なるいくつかの拡張子( 。と。等は、明らかに、いくつかの影響を受けている場合にだけ見て、他のイメージ) 、およびいくつかの異なるアクセス許可を持つファイル( 777一番上) chmod 。 ではなく、 1つの拡張子を変更しました。 このスクリプト自体は、 "メディアの1つ上のディレクトリレベルでroot権限を" (としては、スクリプトで設定)に位置しています。 コード:
$ ls -l img2iso total 0 -rwxrwxrwx 1 astrid 619956085 0 Feb 15 13:01 dummy.img -rw-r--r-- 1 astrid 619956085 0 Feb 15 21:50 dummy.iso -rwxrwxrwx 1 astrid 619956085 0 Feb 15 13:01 example.img -rw-r--r-- 1 astrid 619956085 0 Feb 15 21:35 example_no_permission.img -rwxrwxrwx 1 astrid 619956085 0 Feb 15 13:01 image.img -rw-r--r-- 1 astrid 619956085 0 Feb 15 13:01 isoimg.iso drwxr-xr-x 2 astrid 619956085 68 Feb 15 12:53 level1a drwxr-xr-x 9 astrid 619956085 306 Feb 15 13:00 level1b |
|
|||||
|
非常に奇妙な、私はいくつかのダミーファイルでスクリプトをテストし、それは私のLinuxマシン上で動作します。
echoコマンドは、スクリプトの一部を挿入してみてください、再度実行しよう: コード:
#!/bin/bash
# Set the video directory here
VIDEO_ROOT_DIRECTORY="/Users/astrid/NFS/scripts/img2iso"
for imgfile in `find "$VIDEO_ROOT_DIRECTORY" -name "*.img" -type f`
do
echo "Processing IMGFILE <$imgfile>"
n=0
exit=""
suffix=""
while [ ! "$exit" ]
do
newname=`echo "$imgfile" | sed "s/\.img$/$suffix\.iso/"`
if [ ! -f "$newname" ]
then
echo "NEW NAME OK! Renaming to <$newname>"
mv "$imgfile" "$newname"
exit="y"
else
echo "NEW NAME <$newname> already exists! Incrementing suffix"
n="$((n+1))"
suffix="-$n"
fi
done
|
|
||||
|
$ ./img2iso.sh
# :不良通訳:そのようなファイルまたはディレクトリ および $ shに- xのimg2iso.sh $ さらに奇妙です: $猫img2iso.sh 実行$が存在する! "サフィックス加算 私はトリプルが存在するディレクトリと、適切な場合には正常にスペルチェックされている。 2番目のケースではないが、迅速な変更はありません。いいえエコー。 スクリプトを実行した後のファイルは、拡張子を変更しているimg2isoディレクトリ。 私も理解するの連結を開始することはできません。のように最後のエコーが非常に迅速に変だ。 私はきっとあなたのコードいいですよこれ以上、何度も繰り返して慎重にする必要があります。私は私の側に欠けているものを参照することはできません。 私の共演をMacOS X 10.4では、おそらくこの問題?私はSmultronエディタとして使用しています。 アストリッドの編集最終更新、 2008年2月15日に 07:29午後.. |
|
||||
|
この方法発作:
コード:
for file in $(find . -type f -iname '*.img'); do
mv $file ${file/img/iso}
done
コード:
save_ifs=$IFS ; IFS='
'
for file in $(find . -type f -iname '*.img'); do
mv "$file" "${file/img/iso}"
done
IFS=$save_ifs
乾杯 編集: bashのこの作品は、しかし、もし私が正しくMacOSXは上のデフォルトのシェルはbashを覚えています... |
|
|||||
|
おそらくdos2unixか何かのMacに似ています。
元のスクリプトについて コード:
#!/bin/bash
# Set the video directory here
VIDEO_ROOT_DIRECTORY="/Users/astrid/NFS/scripts/img2iso/";
# Check if the directory exist or not
if [ -d "$VIDEO_ROOT_DIRECTORY" ]; then
cd $VIDEO_ROOT_DIRECTORY
else
print "ERROR: Unable to reach directory - or it does not exist!";
exit 1
fi
for imgfile in $(find . -type f -iname "*.img")
do
if [ ! -f ${imgfile%.img}.iso ] ; then
mv ${imgfile} "${imgfile%.img}.iso"
print "[${imgfile} -> ${imgfile%.img}.iso]"
else
mv ${imgfile} "${imgfile%.img}-1.iso"
print "[${imgfile} -> ${imgfile%.img}-1.iso]"
done
exit 0
|