![]() |
|
|
google unix.com
|
|||||||
| Forums | Registreer | Forum Regels | Links | Albums | Veelgestelde vragen | Ledenlijst | Kalender | Zoeken | Today's Posts | Markeer forums als gelezen |
| 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 |
![]() |
|
|
LinkBack | Thread Tools | Zoeken in deze Thread | Rate Thread | Display Modes |
|
|
|
||||
|
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.. |
|
||||
|
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 |
|
|||||
|
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. |
|
||||
|
$ ./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.. |
|
||||
|
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 ... |
|
|||||
|
Citaat:
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 '. |
![]() |
| Bladwijzers |
| Labels |
| linux, Linux commando's, Unix-commando's |
| Thread Tools | Zoeken in deze Thread |
| Display Modes | Beoordeel deze draad |
|
|