Contenu | Rechercher | Menus

Annonce

Ubuntu 16.04 LTS
Commandez vos DVD et clés USB Ubuntu-fr !

Pour en savoir un peu plus sur l'équipe du forum.

Appel à contributeurs pour la doc.

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

#1 Le 10/01/2017, à 15:47

Champotte

[RÉSOLU] Afficher ligne précédent un motif

Bonjour,
Je voudrais afficher la ligne qui précède un motif dans un fichier. J'ai essayé avec

grep -B 1 motif fichier.txt 

Malheureusement cela affiche le motif + la ligne qui le précède, alors que moi je veux juste la ligne.

Voici un exemple:
fichier.txt:
  bash
  shell
  motif
  test
  motif
  motif
  aide

Alors le résultat devra être:
  shell
  test
  motif

Je vous remercie d'avance, bonne journée

Dernière modification par Champotte (Le 11/01/2017, à 00:48)

Hors ligne

#2 Le 10/01/2017, à 16:20

moko138

Re : [RÉSOLU] Afficher ligne précédent un motif

Est-ce que

grep -iC 1 motif fichier.txt | head -n 2

suffirait à ton bonheur ?


%NOINDEX%
Un utilitaire méconnu : ncdu

Hors ligne

#3 Le 10/01/2017, à 16:47

Champotte

Re : [RÉSOLU] Afficher ligne précédent un motif

Malheureusement non, cela ne marche pas. Cependant, que veut dire l'option -iC ?

En tout cas merci de l'aide, c'est sympa wink

Hors ligne

#4 Le 10/01/2017, à 16:58

Watael

Re : [RÉSOLU] Afficher ligne précédent un motif

salut,

$ sed -n '/motif/! h;/motif/{x;p}' fichier.txt 
  shell
  test
  motif

eval, c'est mal.

Hors ligne

#5 Le 10/01/2017, à 17:02

Laurent85

Re : [RÉSOLU] Afficher ligne précédent un motif

Bonjour, ou encore avec awk :

awk 'BEGIN {getline; prec=$1} /motif/ {print prec} {prec=$1}' fichier.txt

Hors ligne

#6 Le 10/01/2017, à 17:21

moko138

Re : [RÉSOLU] Afficher ligne précédent un motif

man grep
       -i, --ignore-case
              Ignorer la casse aussi bien dans le MOTIF que dans les fichiers.

       -C N, -N, --context=N
              Afficher  N  lignes  de  contexte.  Une  ligne  contenant -- est
              insérée entre les  groupes  contigus  de  correspondances.  

%NOINDEX%
Un utilitaire méconnu : ncdu

Hors ligne

#7 Le 11/01/2017, à 00:47

Champotte

Re : [RÉSOLU] Afficher ligne précédent un motif

Bonsoir,
Merci moko138, pourtant j'avais bien regardé dans le man mais j'ai dû ne pas faire attention, merci wink
Merci Watael ainsi que Laurent85 vos deux commandes marche très bien après de nombreux tests wink

Merci à tous, bonne soirée
Sujet Résolu

Dernière modification par Champotte (Le 11/01/2017, à 00:48)

Hors ligne