The UNIX and Linux Forums  
Olá e boas-vindas de Estados Unidos para o UNIX e Linux Forum! Obrigado por visitar e fazer parte da nossa comunidade global.

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
tamanho do arquivo comparação arquivo local e remoto arquivo dba.admin2008 Programação Shell Script e 4 11-13-2008 05:57
Ler um arquivo e escrever o nome do arquivo para um arquivo param. thebeginer UNIX & avançada para usuários experientes 1 10-05-2007 04:38
Ler ficheiros de nomes a partir de um arquivo e executar o arquivo de shell script parente anushilrai Programação Shell Script e 4 03-10-2006 05:25

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 01-02-2009
Hangman2 Hangman2 is offline
Usuário
  
 

Join Date: Feb 2008
Lugares: 27
Como nome do arquivo?

Assumindo / dir1/dir2 tem dois arquivo

ficheiro1
ficheiro2

Se eu pegar o nome do arquivo que inclui o nome usando comando dir

file_name \u003d `ls-ltr / dir1/dir2 / * | grep '^ -' | tail -1 | awk '(print $ 9)'`

então fico com o que inclui a nome_do_ficheiro / dir1/dir2 também.

se eu quero pegar apenas o nome do arquivo que deve ser ficheiro1 ou ficheiro2 então como posso fazer isso?
  #2 (permalink)  
Old 01-02-2009
joeyg's Avatar
joeyg joeyg is offline Forum Staff  
Modérateur
  
 

Join Data: dezembro 2007
Localização: Home, de 17 de tempo de campeão mundial de Boston Celtics
Posts: 1.311
Wink tente o seguinte

Código:
file_name=`ls -ltr /dir1/dir2 | grep '^-' | tail -1 | awk '{print $9}' `
para evitar o caminho em sua variável
  #3 (permalink)  
Old 01-02-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programador, autor
  
 

Join Date: Mar 2007
Localização: Toronto, Canadá
Posts: 2.361

Eu não utilizaria quatro comandos externos apenas a obter um nome de arquivo. No entanto, uma vez que você tem, é uma simples questão de parâmetro expansão:

Código:
file_name=${file_name##*/}
  #4 (permalink)  
Old 01-02-2009
Hangman2 Hangman2 is offline
Usuário
  
 

Join Date: Feb 2008
Lugares: 27
Funcionou

Isso funcionou.

file_name \u003d `ls-ltr / dir1/dir2 | grep '^ -' | tail -1 | awk '(print $ 9)'`


>>
Eu não utilizaria quatro comandos externos apenas a obter um nome de arquivo
>>

Haverá um suplente para apenas pegar as últimas nome do arquivo de um dir?

Eu costumava grep apenas para obter arquivos de um dir ou saltar a dirs debaixo dela, tail -1 dá o nome do arquivo mais recente. Awk só imprime o nome.

Obrigado.

  #5 (permalink)  
Old 01-02-2009
reborg's Avatar
reborg reborg is offline Forum Staff  
Administrador
  
 

Join Date: Mar 2005
Localização: Irlanda
Mensagens: 4.209
Como um exemplo simples de como você poderia simplesmente isso, você pode se livrar do grep e cauda.
  #6 (permalink)  
Old 01-02-2009
cfajohnson's Avatar
cfajohnson cfajohnson is offline Forum Advisor  
Shell programador, autor
  
 

Join Date: Mar 2007
Localização: Toronto, Canadá
Posts: 2.361
Citação:
Originally Posted by Hangman2 View Post
Haverá um suplente para apenas pegar as últimas nome do arquivo de um dir?

Código:
dir=/dir1/dir2  ## adjust to taste
file_name=$(
 ls -t "$dir" |
 while IFS= read -r file
 do
   [ -f "$dir/$file" ] && { printf "%s\n" "$file"; break; }
 done
)
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 12:10.


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