Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1512 connectés 

  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Bash] Besoin d'aide.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Bash] Besoin d'aide.

n°1647410
NumanFirst
Posté le 22-11-2007 à 16:41:35  profilanswer
 

Bonjour,
 
J'aurais besoin d'un petit coup de pouce pour la création d'un script.
 
J'ai un fichier qui contient des lignes sous la forme suivantes :
  ZEPU3F0I RFX  R2MMSB   K2119150       1002       1002   0 CP 00%            
  ZEPU3F0I RFX  R2MMSB   K2119161        797        797   0 CP 00%            
  ZEPU3F0I RFX  R2MMSB   K2119170        631        631   0 CP 00%            
  ZEPU3F0I RFX  R2MMSB   K2119174        335        335   0 CP 00%            
  ZEPU3F0I RFX  R2MMSB   K2119184        740        740   1 CP 00%            
  ZEPU3F0I RFX  R2MMSB   K2119191        424        424   0 CP 00%            
  ZEPU3F0I RFX  R2MMSB   K2119194        343        343   0 CP 00%            
  ZEPU3F0I RFX  R2MMSB   K2119203        502        502   0 CP 00%            
  ZEPU3F0I RFX  R2MMSB   K2119205        294        294   0 CP 00%            
   
Et je voudrais une commande qui extrait les lignes pour lesquelles le 7° champ et différent de 0.
 
J'ai trouvé la commande suivante :
cat "nomfichier" | awk '{print $7}' | grep -v 0
 
Mais elle n'affiche que la valeur du champ qui est différent de 0 mais pas la ligne entière.
 
Merci d'avance pour votre aide.


Message édité par NumanFirst le 23-11-2007 à 14:48:37
mood
Publicité
Posté le 22-11-2007 à 16:41:35  profilanswer
 

n°1647547
Coolnut
Posté le 22-11-2007 à 18:24:06  profilanswer
 

Code :
  1. for /f "tokens=1,2,3,4,5,6,7,* delims= " %%a in ('type fichier.txt') do set vrNumb=%%g& set vrLign=%%a %%b %%c %%d %%e %%f %%g %%h& call :testNumb
  2. goto fintestNumb
  3. :testNumb
  4. if not "%vrNumb%"=="0" echo %vrLign%
  5. goto :eof
  6. :fintestNumb


Message édité par Coolnut le 22-11-2007 à 18:25:04
n°1647555
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 22-11-2007 à 18:28:49  profilanswer
 

c'est une obligation de faire ça en batch [:petrus dei]

n°1647561
Coolnut
Posté le 22-11-2007 à 18:35:24  profilanswer
 

ben dans le titre tu a mi batch ;)

n°1647583
SICKofitAL​L
misanthrope
Posté le 22-11-2007 à 19:21:27  profilanswer
 

son batch à lui c genre du bash ou qqch comme ca, le tiens Coolnut c sous DOS/win nan ? :??:


Message édité par SICKofitALL le 22-11-2007 à 19:21:37

---------------
We deserve everything that's coming...
n°1647585
Coolnut
Posté le 22-11-2007 à 19:22:41  profilanswer
 

oui

n°1647618
SICKofitAL​L
misanthrope
Posté le 22-11-2007 à 20:09:21  profilanswer
 

:??:
ca y est c devenu msn ici [:petrus75] ?


---------------
We deserve everything that's coming...
n°1647939
NumanFirst
Posté le 23-11-2007 à 14:50:22  profilanswer
 

Excusez-moi, c'est du bash.
J'ai corrigé le sujet.
 
C'est un script que je vais lancer sur un serveur AIX Version 5.2


Message édité par NumanFirst le 23-11-2007 à 14:52:23
n°1647985
Elmoricq
Modérateur
Posté le 23-11-2007 à 15:32:23  profilanswer
 

Un truc comme ça devrait le faire :

awk '($7 != 0) { print $0 }' ton_fichier

n°1648093
NumanFirst
Posté le 23-11-2007 à 17:04:45  profilanswer
 

Elmoricq a écrit :

Un truc comme ça devrait le faire :

awk '($7 != 0) { print $0 }' ton_fichier



 
C'est parfait.
Merci beaucoup pour votre aide.

mood
Publicité
Posté le 23-11-2007 à 17:04:45  profilanswer
 

n°1648098
Coolnut
Posté le 23-11-2007 à 17:08:13  profilanswer
 

Putin c'est simple en bash

n°1648108
Elmoricq
Modérateur
Posté le 23-11-2007 à 17:26:15  profilanswer
 

Non, c'est batch qui est abusivement compliqué. Enfin c'est mon avis. [:dawao]

n°1652554
Redrya
Posté le 04-12-2007 à 09:47:18  profilanswer
 

bonjour a tous. Voila je me mets au shell depuis quelques temps et je fais des petits scripts mais j'ai besoin d'aide. Je cherche actuellement a faire un script permettant de compter le nombre d'occurence d'un mot (que l'on entre soi-meme) dans un texte. En clair si j'appelle mon script cherche.sh j'aimerais qu'en faisant :  
./cherche.sh bonjour bonsoir montexte.txt
il compte le nombre de fois qu'apparaissent les mots "bonjour" et "bonsoir" dans le fichier "montexte.txt".
j'ai deja essayé avec awk et autre mais je n'aboutit a rien.
Si quelqu'un pouvait m'aider ca serait sympa ;D

Message cité 1 fois
Message édité par Redrya le 04-12-2007 à 10:58:28
n°1652556
Coolnut
Posté le 04-12-2007 à 09:53:19  profilanswer
 

Si j'ai bien compris tu veut compter le nombre de foi que se trouve le mot bonjour dans un fichier.txt, si c'est ca voila:

Code :
  1. for /f "delims=" %%i in ('type fichier.txt ^|find "bonjour"') do set /a vrCompt+=1
  2. echo %vrCompt%

n°1652565
Elmoricq
Modérateur
Posté le 04-12-2007 à 10:13:13  profilanswer
 

Redrya a écrit :

bonjour a tous. Voila je me mets au batch depuis quelques temps et je fais des petits scripts mais j'ai besoin d'aide. Je cherche actuellement a faire un script permettant de compter le nombre d'occurence d'un mot (que l'on entre soi-meme) dans un texte. En clair si j'appelle mon script cherche.sh j'aimerais qu'en faisant :  
./cherche.sh bonjour bonsoir montexte.txt
il compte le nombre de fois qu'apparaissent les mots "bonjour" et "bonsoir" dans le fichier "montexte.txt".
j'ai deja essayé avec awk et autre mais je n'aboutit a rien.
Si quelqu'un pouvait m'aider ca serait sympa ;D

 

Donc pas en batch, qui est DOS/Windows. L'erreur a été expliquée sur ce topic même. [:mlc]

 

Perso je ferais ça avec PERL :

perl -ne 'BEGIN { my $count = 0; } { $count += split /le_mot_à_compter/, $_; } END { print "$count\n"; }' fichier


Message édité par Elmoricq le 04-12-2007 à 10:13:29
n°1652575
Redrya
Posté le 04-12-2007 à 10:41:23  profilanswer
 

à Coolnut :: pourais-tu m'expliquer ton code car je n'arrive pas a le faire marcher (puis si possible donner une formule plus générale est non pas uniquement pour le mot "bonjour" mais pour n'importe quel mot rentré après l'execution du code => comme dit dans mon premier message).
 
à Elmoricq :: je ne prefere pas faire de perl pour le moment mais merci quand même  :)

n°1652579
Elmoricq
Modérateur
Posté le 04-12-2007 à 10:49:34  profilanswer
 

Hmm, c'est normal que tu ne puisses pas le faire fonctionner si tu es sur environnement unixoïde, puisque le code de Coonut c'est du batch (DOS/Windows).

 

Et pourquoi ne veux-tu pas utiliser PERL, normalement il est sur ton système s'il date de moins de quinze ans. [:dawao]

 

Sinon avec nawk + bash ça marche aussi :

count=0
for i in $(nawk -F'mot_à_chercher' '{ print NF }' fichier); do count=$(($count + $i)); done
echo $count


Message édité par Elmoricq le 04-12-2007 à 11:05:28
n°1652640
matafan
Posté le 04-12-2007 à 12:55:18  profilanswer
 

Plus simple :

grep -o toto txt | wc -l

n°1652649
Elmoricq
Modérateur
Posté le 04-12-2007 à 13:36:19  profilanswer
 

J'ai une excuse :

grep: illegal option -- o


 
[:dawa]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Shell/Batch

  [Bash] Besoin d'aide.

 

Sujets relatifs
ptite aide en php pour une fonction mailAide pour la création d'un flux RSS
Aide PHPBBAide programmation galerie xml
Attacher une image a l'aide de SendMessage(BM_SETIMAGE... sous MFCAide programmation java;: modeliser une blibliotheque urgent svp
Besoin d'aide sur un conteneur pour arbre binaireBesoin d'aide pour un truc tout simple
[Bash] Besoin d'aide[BASH] Help! Besoin d'aide pour l'écriture d'un script ...
Plus de sujets relatifs à : [Bash] Besoin d'aide.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR