![]() |
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.
|
|
google unix.com
|
|||||||
| Fóruns | Registar | Fórum Regimento | Ligações | Álbuns | FAQ | Lista deputados | Calendário | Pesquisa | Today's Posts | Mark Forums Read |
| Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui. |
Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
|
||||
| Fio | Thread Starter | Fórum | Respostas | Última postagem |
| Root Senha mudança | bullz26 | Sun Solaris | 2 | 03-30-2008 11:09 |
| Como alterar a senha ROOT. | angelofhell | HP-UX | 3 | 02-25-2008 06:44 |
| alterar senha root | duke0001 | Sun Solaris | 3 | 02-22-2007 12:10 |
| Como faço para alterar extensão | kswaraj | Programação Shell Script e | 2 | 06-28-2004 08:07 |
| Como alterar a extensão? | prkwan | Programação Shell Script e | 4 | 11-16-2002 07:14 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
mudar extensão de raiz e subdiretórios
Olá, meu primeiro post!
I'd appreciate ajudar com este script, sou novo para isso. Tenho uma media diretório onde quero batch converter o arquivo de imagem a partir de nomes. Img para. Iso. Tentei, mas obtém: $ ./img2iso2.sh ./img2iso2.sh: linha 13: Erro de sintaxe: fim do arquivo inesperado ![]() Este é o meu inacabada script: Código:
#!/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
Além disso, eu penso que seria inteligente para incluir algum tipo de verificação: se houver um arquivo chamado image.iso e um chamado image.img na mesma (sub) diretório; Queria mudar o nome desta. img a imagem-1.iso. Mas eu nem sei por onde começar com esta verificação! Se eu entender a mensagem de erro, há um problema com citando? Eu fiz tantas tentativas que eu não posso lembrar quando eu comecei mais. Qualquer ajuda é muito apreciada. EDIT: Pesquisando no fórum eu encontrei uma maneira melhor de fazer a substituição do arquivo extensão (aqui), Mas eu não era tão sortudo com o subdirs. Última edição por Astrid; em 02/15/2008 03:43.. |
|
||||
|
Obrigado pela rápida resposta, robotronic!
Mas lamento dizer que eu não poderia obtê-lo para o trabalho. O script é executado e então eu começo rápido novamente, mas não há indicação se ele está errado em algum lugar, eu até tentei mudar o vídeo diretório raiz de um manequim de invocar alguns comentários, mas em vão. ![]() Eu usei "toque" de fazer algumas manequim arquivos no diretório especificado e subdiretórios: alguns com o mesmo nome mas extensão diferente (. Img e. Iso, obviamente, e algumas outras só para ver se eles são afetados), e alguns arquivos com diferentes permissões (chmod 777 no máximo). Mas não mudou a uma extensão. O script em si está localizado em um nível acima do diretório "raiz mídia" (tal como previsto no script). Código:
$ 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 |
|
|||||
|
Muito estranho, tenho testado o script com alguns arquivos manequim e ele funciona no meu linux caixa.
Experimente inserir alguns comandos echo no script e tente voltar a executá-lo: Código:
#!/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
#: Mau intérprete: Nenhum tal lima ou diretório e $ Sh-x img2iso.sh $ O que é mais estranho: $ Cat img2iso.sh feito $ existe! Incrementando sufixo " Tenho verificado que triplicar o diretório existe e está correto com a devida caso. No segundo caso, não acontece nada, mas uma rápida mudança. Não ecos. No img2iso diretório não prorrogação arquivos foram alterados depois de executar o script. O concatenar Não posso sequer começar a compreender. Parece muito estranho para pedir a última eco desse jeito. Vou ter de olhar mais atentamente novamente e desta vez eu tenho certeza que seu código é bom. Eu não posso ver que estou em falta do meu lado. Estou em um MacOS X 10.4, talvez esta matéria? Eu uso Smultron como editor. Última edição por Astrid; em 02/15/2008 07:29.. |
|
||||
|
tal como esta:
Código:
for file in $(find . -type f -iname '*.img'); do
mv $file ${file/img/iso}
done
Código:
save_ifs=$IFS ; IFS='
'
for file in $(find . -type f -iname '*.img'); do
mv "$file" "${file/img/iso}"
done
IFS=$save_ifs
felicidades EDIT: Isso funciona para a bash, mas se bem me lembro sobre o shell padrão é macosx bash ... |
|
|||||
|
Talvez um dos2unix ou algo semelhante no Mac.
Para o seu roteiro original Código:
#!/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
|
![]() |
| Marcadores |
| Tags |
| linux, linux comandos, comandos unix |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|