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
Word count wc chaandana UNIX para Dummies Perguntas & Respostas 5 05-05-2009 11:47
Como contar as ocorrências de uma palavra específica em um arquivo de comandos bash mskart UNIX para Dummies Perguntas & Respostas 2 10-30-2008 12:42
Como encontrar uma contagem de uma palavra dentro de um arquivo bd_joy Programação Shell Script e 9 07-14-2008 10:29
grep todos os registros em um arquivo e obter uma palavra contam-perl meghana Programação Shell Script e 4 02-13-2008 10:06
Contar o número de ocorrência de perticular palavra a partir do arquivo rayashot Programação Shell Script e 40 08-10-2007 08:33

Reply
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 07-09-2009
unx100 unx100 is offline
Usuário
  
 

Join Date: Jul 2009
Lugares: 22
a forma de contar uma palavra em um arquivo

Dear all,

Tenho uma exigência para contar os erros e visualização de um arquivo.
por exemplo. file1.txt

Código:
sjdgfjdgfgd ora-0001 sdjgfydh sdukgh7 23
sjdgfjdgfgd ora-0002 sdjgfydhsf34 ew 34v
sjdgfjdgfgd ora-0008 sdjgfydh asdf asdfas 
sjdgfjdgfgd ora-0001 sdjgfydhjkbs ui873
sjdgfjdgfgd ora-0004 sdjgfydh 2876gfen 
sjdgfjdgfgd ora-0002 sdjgfydhj uewiuriue 324987

a saída seria:

Código:
Error Code : ORA-0001  Count : 2
Error Code : ORA-0002  Count : 2
Error Code : ORA-0004  Count : 1
Error Code : ORA-0008  Count : 1

Eu escrevi um prog. como a seguir e está funcionando bem. gostaria de saber se existe alguma forma simples de escrever o prog. Novo em Unix portanto não tenho certeza de outras maneiras.
Thanks in advance.


Código:
#!/bin/sh
echo "Enter filename..."
read name
cd /test/unix
cat $name | while read line
do
echo "$line" > tmpj
cat "tmpj" | egrep -c ora- > tmpk
if [ `cat tmpk` -gt 0 ]
then 
cat tmpj | sed 's/.*\(ora-.....\).*/\1/' >> tmpl
fi
done
rm tmpj
rm tmpk
for var1 in `cat tmpl`
do
echo "$var1" > tmpj
cat tmpl | egrep -c `cat tmpj` > tmpk
if [ `cat tmpk` -gt 0 ]
then
echo "Error Code : "$var1"  Count : `cat tmpk`"
sed "/$var1/d" tmpl > tmpm
mv tmpm tmpl
fi
done
rm tmpj
rm tmpk
rm tmpl


Última edição por vgersh99; em 07/09/2009 12:11.. Motivo: código tags, POR FAVOR!
  #2 (permalink)  
Old 07-09-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.131

Código:
nawk '
{
   a[$2]++
}
END {
   for (i in a)
     print "Error Code : " i " Count : " a[i]
}
' file1.txt



Postagem atualizada em ---------- ---------- anterior 11:12 update estava em 11:10 ----------

Para manter os fóruns de alta qualidade para todos os usuários, por favor, tome o tempo de formatar suas postagens corretamente.

Primeiro de tudo, utilize Código Tags quando você postar qualquer código ou dados amostras para que outros possam facilmente ler o código. Você pode fazer isso facilmente, destacando o seu código e, em seguida, clicar sobre o # na edição menu. (Você também pode digitar código tags [code] e [/ code] pela mão.)

Em segundo lugar, evitar a cor ou diferentes fontes e tamanho da fonte para as suas postagens. Seletiva uso de cores para destacar uma única palavra ou frase pode ser útil às vezes, mas utilizando cores, em geral, torna mais difícil de ler os fóruns, especialmente cores brilhantes como o vermelho.

Em terceiro lugar, deve ter cuidado quando você cortar e colar, editar qualquer personagens ímpares e certifique-se de todos os links estão a funcionar bem.

Obrigado.

O UNIX e Linux Forum
  #3 (permalink)  
Old 07-09-2009
unx100 unx100 is offline
Usuário
  
 

Join Date: Jul 2009
Lugares: 22
Oi gerh99,

Obrigado, excelente código.
O arquivo que eu tinha é uma mensagem de erro eo ficheiro ora erros nem sempre são o 2. Col. / occurence. ora erro pode aparecer em qualquer linha ou vai aparecer também.
Pedimos desculpas pelo transtorno.
por exemplo.

Código:
sjdgfjdgfgd sdjgfydh sdukgh7 23 ora-0001 
sjdgfj dgf g  d ora-0002 sdjgfydhsf34 ew 34v
sjdg fjdgf gd ora-0008 sdjgfydh asdf asdfas 
sjdgfj dgf gd ora-0001 sdjgfydhjkbs ui873
sjdgfjdg fgd sdjgfydh 2876gfen 
sj dgfjd gfgd ora-0002 sdjgfydhj uewiuriue 324987


Última edição por vgersh99; em 07/09/2009 12:51.. Motivo: código tags, POR FAVOR!
  #4 (permalink)  
Old 07-09-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.131

Código:
nawk '
/ora-[0-9]/ {
    for(i=1;i<=NF;i++)
       if ( $i ~ /ora-[0-9]/ ) {a[$i]++;break}
}
END {
   for (i in a)
     print "Error Code : " i " Count : " a[i]
}
' file1.txt

  #5 (permalink)  
Old 07-10-2009
unx100 unx100 is offline
Usuário
  
 

Join Date: Jul 2009
Lugares: 22
HI Gersh99,

Obrigado novamente pela resposta pronta e que trabalhar bem e trabalhar muito mais rapidamente para o meu código (que já referi no 1 º lugar).
Nawk é algo novo para mim, pesquisados na novatos unix livro (por Wrox) nada muito disponível.

Corrija-me se Im worng:
O código está tendo "espaço" como o espaço separador.
e se o arquivo é um pouco parecido com isto:

Código:
sjhgfjhgdfs ora-0001 kjhsf 098j 97h
suiy23vb jhf8 ora-0001
jkhsdkj 98798 error:ora-0001 uif987

então estou começando a saída não como ora-0001: 3, mas como

Código:
ora-0001 : 2
error:ora-0001 : 1

existe qualquer maneira eu posso extrair apenas palavras começando com ora -

Última edição por vgersh99; em 07/10/2009 07:48.. Motivo: código tags, POR FAVOR!
  #6 (permalink)  
Old 07-10-2009
rakeshawasthi rakeshawasthi is offline
Usuário
  
 

Join Date: Aug 2004
Localização: Índia
Posts: 379
Por favor, utilize CÓDIGO tags, Estou tendo dificuldade em ler a sua amostra de entrada.
  #7 (permalink)  
Old 07-10-2009
vgersh99's Avatar
vgersh99 vgersh99 is offline Forum Staff  
Moderador
  
 

Join Date: Feb 2005
Localização: Boston, MA
Mensagens: 5.131

Código:
nawk '
/ora-[0-9]/ {
    for(i=1;i<=NF;i++)
       if ( $i ~ /ora-[0-9]/ ) { a[substr($i,index($i,"ora-"))]++; break}
}
END {
   for (i in a)
     print "Error Code : " i " Count : " a[i]
}
' file1.txt


Última edição por vgersh99; em 07/10/2009 07:56.. Motivo: Ooops, desculpe - misread a exigência
Reply

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 01:26.


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