![]() |
Hej og Velkommen fra USA til UNIX og Linux Forums! Tak for dit besøg og deltager i vores globale samfund.
|
|
google unix.com
|
|||||||
| Forums | Registrer | Forum Regler | Links | Albums | FAQ | Members List | Kalender | Søgning | Dagens Stillinger | Mark Forums Read |
| Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her. |
Mere UNIX og Linux Forum Emner du måske kan finde Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Last Post |
| Root Password ændre | bullz26 | Sun Solaris | 2 | 03-30-2008 11:09 AM |
| Sådan ændres ROOT password. | angelofhell | HP-UX | 3 | 02-25-2008 06:44 AM |
| ændre root password | duke0001 | Sun Solaris | 3 | 02-22-2007 12:10 PM |
| Hvordan ændrer jeg udvidelse | kswaraj | Shell Programmering og Scripting | 2 | 06-28-2004 08:07 PM |
| Sådan ændres udvidelse? | prkwan | Shell Programmering og Scripting | 4 | 11-16-2002 07:14 PM |
![]() |
|
|
LinkBack | Thread Tools | Søg denne tråd | Rate Thread | Display Modes |
|
|
|
||||
|
ændre filtypenavnet fra roden og undermapper
Hej, mit første indlæg!
Jeg vil sætte pris på hjælp med dette script, jeg er ny her. Jeg har et medie-bibliotek, hvor jeg ønsker at batch konvertere billedfil navne fra. Img til. Iso. Jeg har prøvet men får: $ ./img2iso2.sh ./img2iso2.sh: Linje 13: syntaks fejl: uventet slutningen af filen ![]() Dette er min ufærdige 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
Også, ville jeg synes, det ville være smart at inkludere en form for check: hvis der er en fil kaldet image.iso og en kaldet image.img i samme (under) bibliotek, jeg gerne vil ændre navnet på det. img fil til billedet-1.iso. Men jeg ved ikke engang, hvor man skal starte med denne check! Hvis jeg har forstået den fejlmeddelelse, der er et problem med at citere? Jeg har gjort så mange forsøg, at jeg ikke kan huske, hvor jeg begyndte længere. Enhver hjælp er meget værdsat. EDIT: Søgning efter forum Jeg har fundet en bedre måde at gøre udskiftning af filtypenavnet (her), Men jeg var ikke så heldige med undermapper. Senest redigeret af Astrid; 02-15-2008 på 03:43 PM.. |
|
||||
|
Tak for det hurtige svar, robotronic!
Men jeg er ked af at sige, at jeg ikke kunne få det til at virke. Scriptet kører og så jeg får hurtigt igen, men der er ingen tegn på, hvis det går galt et sted, jeg selv forsøgt at ændre videoen roden til en dummy biblioteket til at påberåbe nogle tilbagemeldinger, men til ingen nytte. ![]() Jeg har brugt "touch" til at foretage nogle dummy-filer i den angivne mappe og undermapper: nogle med samme navn, men forskellige udvidelse (. Img og. Iso, naturligvis, og nogle andre bare for at se, om de er berørt), og nogle filer med forskellige tilladelser (chmod 777 på de fleste). Men ikke en ændret udvidelse. Scriptet selv ligger i en mappe niveau over "medier roden" (som defineret i scriptet). 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 |
|
|||||
|
Meget underligt, jeg har testet scriptet med nogle prøvedukkens filer og det virker på min linux-boks.
Prøv at indsætte nogle echo kommandoer i scriptet og prøv igen at køre det: 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
|
|
||||
|
$ ./img2iso.sh
#: Dårlig tolk: Ingen sådan fil eller mappe og $ Sh-x img2iso.sh $ Hvad er mere mærkeligt: $ Cat img2iso.sh Udfærdiget $ eksisterer! Øger suffikset " Jeg har tredobbelt kontrolleret, at biblioteket findes og er stavet korrekt med korrekt sag. I det andet tilfælde sker der ingenting, men en hurtig forandring. Nr. ekkoer. I img2iso mappe ingen filer er blevet ændret forlængelse efter scriptet køres. Den concatenate Jeg kan ikke engang begynde at forstå. Det virker meget mærkeligt til at bede de sidste echo sådan. Jeg bliver nødt til at se denne over grundigt igen og igen, så jeg er sikker på, at din kode er god. Jeg kan bare ikke se, hvad jeg mangler på min side. Jeg er på en MacOS X 10.4, måske dette spørgsmål? Jeg bruger Smultron som redaktør. Senest redigeret af Astrid; 02-15-2008 på 07:29 PM.. |
|
||||
|
hvordan Bout dette:
Code:
for file in $(find . -type f -iname '*.img'); do
mv $file ${file/img/iso}
done
Code:
save_ifs=$IFS ; IFS='
'
for file in $(find . -type f -iname '*.img'); do
mv "$file" "${file/img/iso}"
done
IFS=$save_ifs
skål EDIT: Dette virker for bash, men hvis jeg husker rigtigt standard shell på macosx er bash ... |
|
|||||
|
Måske en dos2unix eller noget tilsvarende i Mac.
På din oprindelige 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
|
![]() |
| Bogmærker |
| Tags |
| linux, linux kommandoer, UNIX kommandoer |
| Thread Tools | Søg denne tråd |
| Display Modes | Bedøm denne tråd |
|
|