The UNIX and Linux Forums  

Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



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
Detecção de receber arquivos sem ocupado sondagens baldyeti Programação Shell Script e 9 08-15-2008 12:06
script para encontrar o número médio ou arquivos? bbbngowc Programação Shell Script e 2 03-27-2008 12:57
executar um script de receber e-mail jojo77 UNIX para Dummies Perguntas & Respostas 7 02-22-2008 01:48
encontrar número de pedidos recebidos para um servidor laddu UNIX para Dummies Perguntas & Respostas 1 03-10-2007 01:48
awk script para encontrar o número de ficheiros uni_ajay_r Programação Shell Script e 4 10-31-2006 06:58

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 Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 03-18-2009
hootdocta5 hootdocta5 is offline
Usuário
  
 

Join Date: Mar 2009
Posts: 5
Script número de arquivos recebidos

Hey guys,

Estou trabalhando em um script Cshell e estou preso em uma parte deste. Preciso ser capaz de copiar arquivos no diretório, mas a minha dar-lhes nomes diferentes para que não substituir-se mutuamente. Por exemplo, a minha pasta já contém FILE.1 Eu quero o meu nome script para o próximo arquivo copiado para FILE.2 e um FILE.3 a próxima e assim por diante. Deve ser capaz de dizer quais arquivos existem e nomeou o novo um valor mais elevado na próxima. Então eu tenho FILE.1, FILE.2, e em meu diretório FILE.3 Agora, se eu copiar em outro arquivo, o meu script deve renomeá-lo FILE.4 Este script foi dirigindo-me nozes todos os dias que eu não posso figura fora. Aqui está o que tenho até agora. Thanks in advance. Novo código seria apreciado porque, obviamente, não têm idéia do que estou fazendo nesta peça.

Código:
while (-d FILE.0)
cp -r FILE FILE.1
 
set ctr = 1
foreach f(*)
   set var1 = 'file $f | awk '{printf "%s\n",$3}''
   if ($var1 == 1) then
      FILE = 'ls $f | cut -f1 -d "."'
      1 = 'ls $f | awk -F "." '{printf "%s\n",$2}''
      mv $f $FILE$ctr.$1
      ctr = 'expr $ctr + 1'
  endif
end
end
  #2 (permalink)  
Old 03-19-2009
wabard wabard is offline
Usuário
  
 

Join Date: Mar 2009
Local: Adelaide, SA & Perth, WA - Austrália
Lugares: 25
Exclamation

Código:
#!/bin/sh

i=1

while(a=1)
do
     if test -e  "FILE."$i
     then
       let i+=1
     else
       break
     fi
done

cp -f FILE FILE.$i

Última edição por wabard; em 03/19/2009 08:53.. Motivo: Corrigido o argumento de linha de comando cp-f-a partir de r (eu digitei a opção errada, r e f estão perto no teclado .. lol)
  #3 (permalink)  
Old 03-19-2009
hootdocta5 hootdocta5 is offline
Usuário
  
 

Join Date: Mar 2009
Posts: 5
Citação:
Originally Posted by wabard View Post
Código:
#!/bin/sh
 
i=1
 
while(a=1)
do
     if test -e  "FILE."$i
     then
       let i+=1
     else
       break
     fi
done
 
cp -r FILE FILE.$i
exactamente o que faz a um represento neste código?
  #4 (permalink)  
Old 03-19-2009
wabard wabard is offline
Usuário
  
 

Join Date: Mar 2009
Local: Adelaide, SA & Perth, WA - Austrália
Lugares: 25
Citação:
Originally Posted by hootdocta5 View Post
exactamente o que faz a um represento neste código?

Dummy para forçar o tempo de ciclo para sempre ... sair fora do loop infinito com o "break" declaração.

Nota: Eu cometi um erro no "pc" opção de linha de comando no exemplo acima (corrigida e anotada).
  #5 (permalink)  
Old 03-19-2009
summer_cherry summer_cherry is offline Forum Advisor  
Usuário
  
 

Join Date: Jun 2007
Localização: Beijing China
Mensagens: 1.088
abaixo podem ajudá-lo a algum

Código:
name=`for i in dir1/*
do
	echo $i | sed 's/^\(.*\/\)\([^0-9]*\)\(.*\)/\2 \3/'
done | sort -n +1 | tail -1 | awk '{print $1""($2+1)}'`
cp file_to_be_copied dir1/$name
  #6 (permalink)  
Old 03-19-2009
Goldorakk's Avatar
Goldorakk Goldorakk is offline
Usuário
  
 

Join Date: Feb 2009
Local: França
Lugares: 43
Em Korn Shell:
Código:
#!/bin/ksh

if [ ! $# -eq 2 ]
then
        echo "Usage: $(basename $0) <filename> <target directory>"
        exit 1
fi

fname=$(basename $1)
current=$(pwd)

cd $2

lastval=$(ls $fname* 2>/dev/null |sort | tail -1 | cut -d. -f2)

if [ "$lastval" = "" ]
then
        lastval=1
else
        (( lastval = lastval + 1 ))
fi

cd $current
cp -f $1 $2/$1.$lastval
Se o seu script é por exemplo "mycopyfile", utilizá-lo como:
Código:
./mycopyfile FILE /path/to/files
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 11:54.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0