The UNIX and Linux Forums  
Bonjour et bienvenu par les États-Unis à la UNIX et Linux Forums! Merci de votre visite et vous joindre à notre communauté mondiale.

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
mot wc chaandana UNIX pour les nuls Questions et réponses 5 05-05-2009 10:47 AM
Comment faire pour compter les occurrences d'un mot dans un fichier en shell bash mskart UNIX pour les nuls Questions et réponses 2 10-30-2008 12:42 PM
Comment trouver un chef d'un mot dans un fichier bd_joy De programmation et de script Shell 9 07-14-2008 09:29 AM
grep tous les enregistrements dans un fichier et obtenir un mot-perl meghana De programmation et de script Shell 4 02-13-2008 10:06 PM
Comptez le nombre d'occurrence de mot à partir du fichier perticular rinku De programmation et de script Shell 40 08-10-2007 07:33 PM

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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 07-09-2009
unx100 unx100 is offline
Registered User
  
 

Date d'inscription: juillet 2009
Posts: 19
à compter d'un mot dans un fichier

Chers tous,

J'ai une exigence de compter les erreurs et les afficher à partir d'un fichier.
par exemple. file1.txt
Code:
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
le résultat serait le suivant:
Code:
Error Code : ORA-0001  Count : 2
Error Code : ORA-0002  Count : 2
Error Code : ORA-0004  Count : 1
Error Code : ORA-0008  Count : 1
J'ai écrit un prog. comme ci-dessous et fonctionne correctement. voudrais savoir, c'est qu'il n'ya aucun moyen simple d'écrire le prog. Nouveau sur unix donc pas sûr d'autres moyens.
Merci d'avance.

Code:
#!/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

Dernière édition par vgersh99; au 07.09.2009 11:11 AM.. Motif: balises de code, S'IL VOUS PLAÎT!
  #2 (permalink)  
Old 07-09-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5122
Code:
nawk '
{
   a[$2]++
}
END {
   for (i in a)
     print "Error Code : " i " Count : " a[i]
}
' file1.txt


---------- Post mis à jour à 11:12 AM ---------- Mise à jour précédente a été, à 11:10 AM ----------

Pour conserver les forums de haute qualité pour tous les utilisateurs, s'il vous plaît prendre le temps de formater vos messages correctement.

Tout d'abord, l'utilisation Code Tags lorsque vous affichez un code ou de données d'échantillons que les autres puissent facilement lire le code. Vous pouvez facilement le faire en mettant en évidence votre code et en cliquant sur le # dans le menu d'édition. (Vous pouvez aussi taper le code des balises [code] et [/ code], par part.)

Deuxièmement, éviter d'ajouter la couleur ou de différentes polices de caractères et la taille de la police de vos messages. L'utilisation sélective de la couleur pour mettre en évidence un mot ou une phrase peut être utile à la fois, mais en utilisant la couleur, en général, fait le plus difficile à lire les forums, en particulier les couleurs vives comme le rouge.

Troisièmement, il faut faire attention lorsque vous copier-coller, de modifier tout impair de caractères et assurez-vous que tous les liens fonctionnent bien.

Merci.

Les systèmes UNIX et Linux Forums
  #3 (permalink)  
Old 07-09-2009
unx100 unx100 is offline
Registered User
  
 

Date d'inscription: juillet 2009
Posts: 19
Salut gerh99,

Merci, excellent code.
Le fichier que j'ai eu un message d'erreur et le fichier ora erreurs ne sont pas toujours la 2e col. / occurence. erreur ora mai apparaissent n'importe où sur la ligne ou la coutume semble aussi.
Excuses pour ce désagrément.
par exemple.
Code:
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

Dernière édition par vgersh99; au 07.09.2009 11:51 AM.. Motif: balises de code, S'IL VOUS PLAÎT!
  #4 (permalink)  
Old 07-09-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5122
Code:
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
Registered User
  
 

Date d'inscription: juillet 2009
Posts: 19
HI Gersh99,

Merci encore pour la réponse rapide et il fonctionne bien et de travail beaucoup plus rapidement à mon code (que j'ai mentionné dans le 1er post).
Nawk est quelque chose de nouveau pour moi, cherché dans le livre unix débutants (par Wrox) rien de bien disponible.

S'il vous plaît me corriger si Im worng:
Le code est en «espace» comme l'espace séparateur.
et si le fichier est un peu comme ceci:
Code:
sjhgfjhgdfs ora-0001 kjhsf 098j 97h
suiy23vb jhf8 ora-0001
jkhsdkj 98798 error:ora-0001 uif987
puis la sortie suis pas ora-0001: 3, mais comme
Code:
ora-0001 : 2
error:ora-0001 : 1
il est de toute façon je peux extraire uniquement les mots commençant par ora -

Dernière édition par vgersh99; au 07.10.2009 06:48 AM.. Motif: balises de code, S'IL VOUS PLAÎT!
  #6 (permalink)  
Old 07-10-2009
rakeshawasthi rakeshawasthi is offline
Registered User
  
 

Join Date: Aug 2004
Lieu: Inde
Messages: 379
S'il vous plaît utiliser CODE tags, Je suis ayant des difficultés à la lecture de votre échantillon d'entrée.
  #7 (permalink)  
Old 07-10-2009
vgersh99's Avatar
vgersh99 vgersh99 is online now Forum Staff  
Modérateur
  
 

Join Date: Feb 2005
Lieu: Boston, MA
Posts: 5122
Code:
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

Dernière édition par vgersh99; au 07.10.2009 06:56 AM.. Motif: Ooops, désolé - une lecture erronée de l'exigence
Reply

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 04:51 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0