The UNIX and Linux Forums  
Helloやアメリカ合衆国へようこそ! UNIXおよびLinuxフォーラム!訪問し、当社のグローバルコミュニティに参加いただきありがとうございます。

Go Back   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午後

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek を搭載 Powered by Google
 
LinkBack スレッドツール このスレッドを検索 スレッドを評価 表示モード
  #1固定リンク)  
Old 2008年2月15日
アストリッド Astrid is offline
登録ユーザー
  
 

参加日: 2008年2月
投稿数: 4
ルートおよびサブディレクトリからファイルの拡張子を変更する

こんにちは、私の最初の投稿!
私はこのスクリプトを支援、これに新たなんだいただければと思います。

私はイメージから変換するバッチファイル名を求めているのはメディアのディレクトリがある。をイメージ。等。

私は試みたが、手に入ります:
$ ./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
私はこのサブディレクトリをチェックしない場合は、にもかかわらず、私にしたいのですが想定しています。 、はgrepを見つけるのかもしれないとの組み合わせ セッド 代わりに使用する必要がありますか?これらのコマンドは、ほとんどすべての状況で驚異動作しているようです。

また、私はそれをチェックのいくつかの並べ替えをスマートだと思うよ:
image.isoがある場合は、ファイルと呼ばれ、 1つは同じ(サブimage.img )ディレクトリと呼ばれる、私はの名前を変更したいのですが。画像にimgファイル- 1.iso。しかし、私もここで、このチェックを開始することはありません!

私はそこに問題の言葉を引用する場合は、エラーメッセージを理解するのか?私はもう、多くの臨床試験を開始したので、覚えてないことができますされています。

任意の仕方も大歓迎です。


編集:
私は、ファイルの拡張子の交換を行うには良い方法を発見フォーラム調査(ここで)は、サブディレクトリに幸運ではなく、私でした。

アストリッドの編集最終更新、 2008年2月15日に 03:43午後..
  #2固定リンク)  
Old 2008年2月15日
robotronic's Avatar
robotronic robotronic is offline Forum Advisor  
私の狂気と遊ぶことはできますか?
  
 

参加日: 2002年4月
場所:イタリア
投稿数: 370
この場合のために働く必要があります:

コード:
#!/bin/bash

VIDEO_ROOT_DIRECTORY="/Users/astrid/NFS/scripts/img2iso"

for imgfile in `find "$VIDEO_ROOT_DIRECTORY" -name "*.img" -type f`
do
   n=0
   exit=""
   suffix=""

   while [ ! "$exit" ]
   do
      newname=`echo "$imgfile" | sed "s/\.img$/$suffix\.iso/"`
      if [ ! -f "$newname" ]
      then
         mv "$imgfile" "$newname"
         exit="y"
      else
         n="$((n+1))"
         suffix="-$n"
      fi
   done
done
  #3固定リンク)  
Old 2008年2月15日
アストリッド Astrid is offline
登録ユーザー
  
 

参加日: 2008年2月
投稿数: 4
クイック返信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
  #4固定リンク)  
Old 2008年2月15日
robotronic's Avatar
robotronic robotronic is offline Forum Advisor  
私の狂気と遊ぶことはできますか?
  
 

参加日: 2002年4月
場所:イタリア
投稿数: 370
非常に奇妙な、私はいくつかのダミーファイルでスクリプトをテストし、それは私の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でのスクリプトを実行することができます。
  #5固定リンク)  
Old 2008年2月15日
アストリッド Astrid is offline
登録ユーザー
  
 

参加日: 2008年2月
投稿数: 4
$ ./img2iso.sh
# :不良通訳:そのようなファイルまたはディレクトリ

および

$ shに- xのimg2iso.sh
$

さらに奇妙です:
$猫img2iso.sh
実行$が存在する! "サフィックス加算

私はトリプルが存在するディレクトリと、適切な場合には正常にスペルチェックされている。

2番目のケースではないが、迅速な変更はありません。いいえエコー。

スクリプトを実行した後のファイルは、拡張子を変更しているimg2isoディレクトリ。

私も理解するの連結を開始することはできません。のように最後のエコーが非常に迅速に変だ。

私はきっとあなたのコードいいですよこれ以上、何度も繰り返して慎重にする必要があります。私は私の側に欠けているものを参照することはできません。

私の共演をMacOS X 10.4では、おそらくこの問題?私はSmultronエディタとして使用しています。

アストリッドの編集最終更新、 2008年2月15日に 07:29午後..
  #6固定リンク)  
Old 2008年2月15日
fimblo fimblo is offline
登録ユーザー
  
 

参加日: 2008年2月
場所:スウェーデンストックホルム
投稿: 31
この方法発作:

コード:
for file in $(find . -type f -iname '*.img'); do
  mv $file ${file/img/iso}
done
このdoesn't空白にし、それには、上記の適応には、ファイル名やディレクトリを取る:

コード:
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を覚えています...
  #7固定リンク)  
Old 2008年2月16日
vino's Avatar
ヴィノ vino is offline Forum Staff  
サポーター(ヴィノ真理)
  
 

参加日: 2005年2月
場所:バンガロール、インド
投稿数:2798
引用:
当初の投稿 アストリッド View Post
$ ./img2iso.sh
# :不良通訳:そのようなファイルまたはディレクトリ
おそらく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
テストしないtho ' 。
Closed Thread

ブックマーク

タグ
linuxのLinuxコマンドUnixコマンド

スレッドツール このスレッドを検索
このスレッドを検索

高度な検索
表示モード このスレッド
このスレッド

投稿ルール
あなた ことができない。 新しいスレッドを投稿
あなた ことができない。 返信の投稿
あなた ことができない。 添付ファイルの投稿
あなた ことができない。 自分の投稿を編集

BBコード なる 〜の上に
スマイリー なる 〜の上に
[イメージ] コードは 〜の上に
HTMLコードは、 オフ
トラックバック なる 〜の上に
ピングバック なる 〜の上に
Refbacks なる 〜の上に




すべてGMT -4です。現在の時刻は 06:38午後


提供: vBulletin、著作権© 2000 - 2006、Jelsoft企業株式会社。言語翻訳による電源
vBCredits v1.4著作権© 2007 - 2008 、 PixelFXスタジオ
は、 UNIXおよびLinuxフォーラムのコンテンツ著作権© 1993 〜 2009 。すべての権利を管理しReserved.Ad RedTyger

コンテンツ関連のURLで vBSEO 3.2.0