![]() |
|
|
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 |
| Extraindo uma string de um arquivo e procurar a mesma seqüência em outros arquivos | mohancrr | Programação Shell Script e | 1 | 09-19-2007 04:17 |
| Perl: busca de uma string em um arquivo ... | pondlife | Programação Shell Script e | 4 | 09-17-2007 08:35 |
| Oi! Procurando por uma cadeia de texto em UNIX | skwadim | UNIX para Dummies Perguntas & Respostas | 1 | 12-22-2006 01:13 |
| Pesquisando diretório para o arquivo que contém algum texto. | LordJezo | UNIX para Dummies Perguntas & Respostas | 4 | 04-04-2006 09:58 |
| Ajuda com pesquisar um arquivo texto | thekid2 | Programação Shell Script e | 6 | 01-02-2004 02:09 |
![]() |
|
|
Linkback | Thread Tools | Pesquisar este Thread | Rate Thread | Display Modes |
|
|
|
||||
|
PERL: Procurando por uma string em um arquivo texto problema
Procurando um pouco de ajuda. Eu preciso de pesquisa para uma seqüência de palavras, mas, infelizmente, estas palavras estão localizados em linhas separadas.
por exemplo, o texto de saída é: Unidos Chanmpions Ronaldo Liverpul Perdedores Torres e meu script código é print ( "DEBUG - verificar arquivo mensagem"); while (<FILE>) ( $ linha \u003d $ _; if ($ linha \u003d ~ / United /) ( print ( "\ nAbout para enviar e-mail \ n"); sendEmail ($ contatos, "", "Acompanhamento", "\ nPor favor esteja ciente de que existe um problema." "", ""); ) o script acima irá mandar um e-mail quando se localiza Unidos, mas eu preciso mandar um e-mail quando fica Unidos Campeões Ronaldo. Pensei algo como if ($ linha \u003d ~ / United / n Campeões / n Ronaldo /) Mas nada de sorte. Todas as sugestões quanto ao modo de ir a esse respeito. |
|
||||
|
Oi Photon, Obrigado pela resposta.
Mas não muito o que estou tentando fazer, eu poderia ter problemas explicou um pouco melhor. Meu problema é que eu só quero mandar um e-mail se as linhas Unidos Campeões Ronaldo ocorrer imediatamente após a si como polegadas Exemplo de arquivo de texto Unidos Chanmpions Ronaldo Liverpul Perdedores Torres Eu não quero enviar um e-mail apenas se as palavras estão localizadas no arquivo, por exemplo, eu não quero enviar um e-mail se for arquivo texto Unidos Campeões Torres Liverpul Perdedores Ronaldo como as linhas im dont interessado ocorrer na ordem correta. |
|
||||
|
O código acima está errado, pois é um uso incorreto de caráter classes: [], que corresponde a nenhum dos personagens dentro dos colchetes em qualquer ordem. Você não pode usá-los para corresponder palavras inteiras, ou pelo menos não facilmente effciently ou na maneira como eles são usados acima. Plus, que também verificar apenas uma linha do arquivo de uma só vez.
|
|
||||
|
Duas abordagens ....
1. Procurar por qualquer uma das palavras em cada linha e cada vez que você encontrar um, adicioná-la a um hash ... por exemplo $ somehash ( "Renaldo") \u003d 1; Quando tiver terminado digitalizar todo o arquivo, verifique o valor hash resultante da existência de todas as palavras .... if ($ existe somehash ( "Renaldo") & & $ existe somehash ( "loosers") & & existe ...) (enviar e-mail ... ) Algo assim .... OU .... Você poderia tentar um padrão similar $ FILEBUFFER \u003d ~ / (A | B | C | D). + (A | B | C | D). + (A | B | C | D ).... / é Você simplesmente repetir as alternativas mais e mais novamente separados por um ou mais de qualquer natureza, e de que maneira você pegar todos eles se apresentam, não importa o que o fim .... Você tem que testar os resultantes captura para ver se todas as palavras estão presentes ... Nota: o "se" no final do padrão ... "i" causas caso de ser ignorado, e "s", afirma a contar uma nova linha como uma das "quaisquer caracteres", que lhe permite igualar em toda a linha ... Note que neste caso $ FILEBUFFER contém todo o arquivo (ver LER ()), e não uma linha .... |
![]() |
| Marcadores |
| Tags |
| linux, perl, perl turnos, deslocar, turnos perl |
| Thread Tools | Pesquisar este Thread |
| Display Modes | Esta taxa Thread |
|
|