Shell et commande awk

bob -  
zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   -
Salut,

j'ai besoin de faire une recherche sur plusieurs lignes, les données sont formatées ainsi :

xxxxxxxxxx
blablabla
65 aaaaaa
xxxxxxxxxx
blablabla
1256 aaaaaa

je voudrais récupérer les lignes où il y a le nombre,

j'utilise la commande awk avec l'option -F mais je sais pas trop comment faire :/

merci de votre aide :D

2 réponses

  1. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    awk '/[[:digit:]]/ { print }' fichier
    ou
    grep '[[:digit:]]' fichier
    ou encore 
    sed -n '/[[:digit:]]/p' fichier

    ;-))
    3
  2. bob
     
    merci de m'avoir répondu,

    cependant, ce n'est pas tout à fait ça, je met ici un extrait du fichier :

    185		08/11/N1011 22:49	BRUMAK, dasihaul
    puissance : 176	RICOU	PASTISSAD	
    452 	voir
    186		08/11/N1011 22:48	KLOOP, dasihaul
    puissance : 74	RICOU	PASTISSAD	
    502 	voir
    187		08/11/N1011 22:48	ANGELSPEED, dasihaul
    puissance : 60	RICOU	PASTISSAD	
    558 
    1 	voir


    awk '$2 ~ /voir/ && $1!=1 || length($0)< 7 && length($0)>=2 { print $1 }' fichier.txt

    en principe la commande ci dessus devrait marcher mais ça ne fonctionne pas dès que j'ai une ligne comme celle là :

    183		08/11/N1011 22:54	FABULOUS33, dasihaul
    puissance : 6	HYPERION		
    1 	voir


    car la valeur que je cherche n'existe tout simplement pas, ce que j'essaye de faire c'est de récupérer chaque ligne se trouvant en dessous des lignes puissance, si la valeur n'existe pas alors je mettrais une valeur par défaut.

    je sais pas si je suis assez clair lol
    0
    1. EminoMeneko Messages postés 2499 Statut Membre 318
       
      Les associations sont ambiguës.
      Moi, je comprend ça comme ça :
      Tu cherches les lignes dont la deuxième colonne vaut "voir" ET dont la première colonne est différente de 1
      OU
      les lignes comprises entre 2 ET 7 caractères.
      Si les conditions sont remplies tu veux afficher la première colonne.
      Donc normale que si la première colonne vaut 1 ça ne s'affiche pas.
      0
    2. bob
       
      j'avais compris ma commande lol

      ce que je voudrais c'est afficher la première colonne quelque soit la valeur avec un awk -F \n mais je ne connais pas la syntaxe précise...
      0
    3. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Ben même topo pour moi, je pige que dalle ;-((

      Merci d'afficher un exemple concret de ton fichier d'entrée et le résultat souhaité.
      0
    4. bob
       
      185 08/11/N1011 22:49 BRUMAK, dasihaul
      puissance : 176 RICOU PASTISSAD
      452 voir
      186 08/11/N1011 22:48 KLOOP, dasihaul
      puissance : 74 RICOU PASTISSAD
      502 voir
      187 08/11/N1011 22:48 ANGELSPEED, dasihaul
      puissance : 60 RICOU PASTISSAD
      558
      1 voir

      Voilà ce que je veux, les lignes en gras, désolé
      0
    5. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
       
      Avec "sed" :

      $ cat plop 
      185 08/11/N1011 22:49 BRUMAK, dasihaul
      puissance : 176 RICOU PASTISSAD
      452 voir
      186 08/11/N1011 22:48 KLOOP, dasihaul
      puissance : 74 RICOU PASTISSAD
      502 voir
      187 08/11/N1011 22:48 ANGELSPEED, dasihaul
      puissance : 60 RICOU PASTISSAD
      558
      1 voir 
      
      $ sed -n '/puissance/{n;p}' plop 
      452 voir
      502 voir
      558
      
      $
      0