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
como mover o ponteiro arquivo para uma determinada linha em c user_prady Alto Nível de programação 7 03-27-2008 12:32
devolver a linha anterior user_prady Programação Shell Script e 12 12-18-2007 07:37
como ir na linha anterior vim useless79 UNIX & avançada para usuários experientes 2 09-16-2007 08:10
pesquisa e obter linha anterior no arquivo paulsew Programação Shell Script e 2 02-23-2007 08:04
Véspera da data em Perl? rajus19 Programação Shell Script e 4 07-18-2006 12:40

 
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-24-2008
tqlam tqlam is offline
Usuário
  
 

Join Date: Jul 2004
Lugares: 12
Perl como mover o ponteiro para linha anterior em um arquivo txt?

Eu tenho um arquivo de texto que tem blocos de texto. Cada bloco começa com # # # e termina com End_ # # #.
Eu escrevi um perl script para procurar uma seqüência de linha 2 (ignorar qualquer linha começa com # # #) de cada bloco
se corresponder, preciso imprimir todo esse bloco. De acordo com a entrada no arquivo abaixo, ele irá imprimir blocos # 02, # 04, # 05.
Aqui está a minha pergunta, não tenho problemas correspondentes a SEARCH_STR, mas, depois de igualar, como faço para voltar anteriores linhas?
# 02, por exemplo, em bloco, pareados na linha 3, mas eu preciso imprimir linhas 1 e 2.

Agradecemos antecipadamente por qualquer ajuda!

MEU SCRIPT:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
#! / 46020/local/bin /perl -w
#
if ($ # ARGV! \u003d 0) (
print "Você deve fornecer um critério de pesquisa. \ n";
saída;
)
my $ query \u003d $ ARGV [0];
my $ input \u003d "/ mypath / inputFILE.txt";
my $ linha;
my $ tag \u003d 0;
my @ resultado \u003d ();

open (FILE, "<$ INPUT") ou morrer "Não foi possível abrir" $ INPUT "file: $!";
while ($ linha \u003d <FILE>) (
next if ($ linha \u003d ~ / ^ # [0-9] [0-9] .* - / | | $ linha \u003d ~ / ^ \ s *$/);
if ($ linha \u003d ~ / $ query / i) (
$ tag \u003d 1;
)
if ($ linha \u003d ~ / ^ End_ # / & & $ tag \u003d\u003d 1) (
push (@ resultado, $ linha) if ($ tag \u003d\u003d 1);
$ tag \u003d 0;
)
push (@ resultado, $ linha) if ($ tag \u003d\u003d 1);
)
close (FILE);
print "@ resultados \ n";
saída;


INPUTFILE:
\u003d\u003d\u003d\u003d\u003d\u003d\u003d\u003d
# 01 - bloco começar linha aqui
algum texto aqui
mais texto aqui
mais linhas
mais linhas
mais linhas
End_ # 01

# 02 - bloco começar linha aqui
algum texto aqui
esta linha contém a SEARCH_STR e algo
mais linhas
mais linhas
End_ # 02

# 03 - bloco começar linha aqui
algum texto aqui
mais texto aqui
mais linhas
mais linhas
mais linhas
End_ # 03

# 04 - bloco começar linha aqui
algum texto aqui
mais linhas
mais linhas
o SEARCH_STR está aqui e alguma coisa
algum texto aqui
mais linhas
mais linhas
mais linhas
End_ # 04

# 05 - bloco começar linha aqui
algum texto aqui
mais linhas
o SEARCH_STR está aqui e alguma coisa
mais linhas
End_ # 05


# 06 - bloco começar linha aqui
algum texto aqui
mais texto aqui
mais linhas
mais linhas
mais linhas
End_ # 06
 

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 08:24.


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