The UNIX and Linux Forums  

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Root-wachtwoord wijzigen bullz26 SUN Solaris 2 03-30-2008 12:09
Hoe verander ROOT wachtwoord. angelofhell HP-UX 3 02-25-2008 06:44
root-wachtwoord wijzigen duke0001 SUN Solaris 3 02-22-2007 12:10
Hoe verander ik extensie kswaraj Programmeren en Shell Scripting 2 06-28-2004 09:07 PM
Het wijzigen van de uitbreiding? prkwan Programmeren en Shell Scripting 4 11-16-2002 07:14 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 02-15-2008
Astrid Astrid is offline
Geregistreerde gebruiker
  
 

Join Date: Feb 2008
Posten: 4
verandering bestandsextensie van root en submappen

Hallo, mijn eerste bericht!
Ik waardeer helpen met dit script, ik ben nieuw bij deze.

Ik heb een media-directory waar ik wil batch converteren afbeeldingsbestand namen uit. Img is. Iso.

Ik heb geprobeerd maar krijg:
$ ./img2iso2.sh
./img2iso2.sh: lijn 13: syntax error: onverwacht einde van bestand

Dit is mijn onafgewerkte script:

Code:
#!/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

Ik neem aan dat dit niet controleren submappen, hoewel ik graag aan. Misschien een combinatie van find, grep en sed moeten worden gebruikt? Deze commando's lijkt te werken wonderen in vrijwel elke situatie.

Ook, ik zou denken zou het slim om een soort van controle:
als er een bestand genaamd image.iso en een zogenaamde image.img in dezelfde (sub) directory; Ik wil graag de naam van dat. img bestand afbeelding-1.iso. Maar ik weet niet eens waar te beginnen met deze controle!

Als ik de foutmelding er is een probleem met een citaat? Ik heb zo veel proeven die ik niet kan herinneren waar ik begon meer.

Alle hulp wordt zeer gewaardeerd.


EDIT:
Zoeken op het forum vond ik een betere manier te doen voor de vervanging van de bestandsextensie (hier), Maar ik was niet zo gelukkig met de submappen.

Laatst gewijzigd door Astrid; op 02.15.2008 03:43 PM..
  #2 (permalink)  
Old 02-15-2008
robotronic's Avatar
robotronic robotronic is offline Forum Advisor  
Kan ik met waanzin?
  
 

Join Date: april 2002
Locatie: Italië
Posts: 370
Dit moet het werk voor u:


Code:
#!/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 (permalink)  
Old 02-15-2008
Astrid Astrid is offline
Geregistreerde gebruiker
  
 

Join Date: Feb 2008
Posten: 4
Dank u voor het snelle antwoord, robotronic!

Maar het spijt me om te zeggen dat ik niet kon krijgen om te werken.

Het script draait en dan krijg ik prompt weer maar er is geen enkele aanwijzing als het fout gaat ergens, Ik heb zelfs geprobeerd om de video op een dummy root directory te beroepen op wat feedback, maar het heeft niets geholpen.

Ik heb gebruikt "touch" om enkele pop-bestanden in de opgegeven map en submappen: sommige met dezelfde naam, maar andere extensie (. Img en. Iso, natuurlijk, en een aantal andere alleen om te zien of ze zijn aangetast), en sommige bestanden met verschillende machtigingen (chmod 777 op de meeste).

Maar niet een wijziging van de extensie.

Het script zelf is gevestigd in een directory niveau boven de "media-root" (zoals in het script).



Code:
$ 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 (permalink)  
Old 02-15-2008
robotronic's Avatar
robotronic robotronic is offline Forum Advisor  
Kan ik met waanzin?
  
 

Join Date: april 2002
Locatie: Italië
Posts: 370
Heel vreemd, ik heb het script getest met enkele pop-bestanden en het werkt op mijn linux bak.

Probeer het invoegen van een aantal echo commando in het script en probeer opnieuw te draaien:


Code:
#!/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

U kunt ook het script met "sh-x img2iso.sh" om de uitvoering.
  #5 (permalink)  
Old 02-15-2008
Astrid Astrid is offline
Geregistreerde gebruiker
  
 

Join Date: Feb 2008
Posten: 4
$ ./img2iso.sh
#: Bad interpreter: No such file or directory

en

$ Sh-x img2iso.sh
$

Wat is meer vreemd:
$ Cat img2iso.sh
Gedaan $ bestaat! Verhogen achtervoegsel "

Ik heb driedubbel gecontroleerd of de map bestaat en correct is gespeld met een goede zaak.

In het tweede geval gebeurt er niets, maar een snelle verandering. Geen echo.

In de img2iso map geen bestanden zijn veranderd verlenging na het uitvoeren van het script.

Het aaneenschakelen Ik kan niet eens beginnen te begrijpen. Het lijkt heel vreemd om snel de laatste echo zo.

Ik zal moeten kijken deze zorgvuldig weer zoals ik ben er zeker van dat u de code goed is. Ik kan niet zien wat ik mis aan mijn kant.

Ik ben op een Mac OS X 10.4, misschien deze zaken? Ik gebruik Smultron als editor.

Laatst gewijzigd door Astrid; op 02.15.2008 07:29 PM..
  #6 (permalink)  
Old 02-15-2008
fimblo fimblo is offline
Geregistreerde gebruiker
  
 

Join Date: Feb 2008
Locatie: Stockholm Zweden
Posts: 31
hoe Bout weten:


Code:
for file in $(find . -type f -iname '*.img'); do
  mv $file ${file/img/iso}
done

Dit doesnt nemen bestandsnamen of mappen met whitespaces bij hen aan te passen aan het bovenstaande, dat doen:


Code:
save_ifs=$IFS ; IFS='
'
for file in $(find . -type f -iname '*.img'); do
  mv "$file" "${file/img/iso}"
done
IFS=$save_ifs

hoop dat dit helpt
sante

EDIT: Dit werkt voor bash, maar als ik me goed herinner de standaard shell op MacOSX is bash ...
  #7 (permalink)  
Old 02-16-2008
vino's Avatar
vino vino is offline Forum Staff  
Supporter (in vino veritas)
  
 

Join Date: Feb 2005
Locatie: Bangalore, India
Berichten: 2.798
Citaat:
Oorspronkelijk geplaatst door Astrid View Post
$ ./img2iso.sh
#: Bad interpreter: No such file or directory
Misschien een dos2unix of iets dergelijks in Mac.

Voor uw originele script

Code:
#!/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

Niet getest tho '.
Closed Thread

Bladwijzers

Labels
linux, Linux commando's, Unix-commando's

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 02:38.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0