Pb résultat affichage d'un fichier...

mïkelkel -  
jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,
voila, j'ai un problème, je voudrais afficher le contenu d'un fichier à partir d'une certaine ligne, donc en n'affichant pas ce qu'il y a avant cette ligne.
J'ai esseyé avec grep, cut... mais je ne trouve pas la soluce.

if [`grep -i "lignexxxxx" /fichier | wc -l` ]
then
cut ......
fi

Ce ne sont pas forcément ces commandes la!
Si quelqu'un connait la réponse...qu'il n'hésite pas!
merci d'avanve.

Mïkelkel
Configuration: Windows 2000
Internet Explorer 6.0

12 réponses

  1. EminoMeneko Messages postés 2499 Statut Membre 318
     
    La solution ne serait-elle pas awk ? =D

    Utilise la avec les variables prédéfinies et des petits tests et le tour est joué.
    http://www.shellunix.com/awk.html
    0
  2. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,
    sed -n '1,10 !p' fichier
    ou
    sed '1,10 d' fichier
    ne prend pas en compte les 10 premières lignes.

    ;-))
    0
  3. mïkelkel
     
    merci pour votre aide,
    j'essay tout de suite toutes les propositions...
    0
  4. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  5. mïkelkel
     
    Re-bonjour,
    j'ai regardé un peu les commandes sed et awk!
    je ne pense pas que ce soit "sed",
    Pour etre plus clair, moi je cherche a afficher le contenu d'un fichier à partir de la ligne que je veux (une phrase en qqlq sorte), lignes caractères! Or j'ai l'impression que "sed" se sert quasiment que des numéros des lignes.
    En fait, la ligne est du type :
    Thu Jan 24 17:20:57 2008 ou Crash recovery completed succefuly
    Et pour "awk", c'est une commande puissante (pas réussit :-( ), si quelqu'un peut me faire un petit exemple...ça serait très sympas, je ne m'en sort pas!!

    pour aider un peu, en français ça devrait donner un truc du genre :

    si il y a 'ligne rechercher' dans fichier
    alors
    echo de tout le reste du texte qui suit cette ligne

    J'espère ne pas etre trop flou pour avoir une réponse très clair :-)
    0
  6. dubcek Messages postés 18627 Date d'inscription   Statut Contributeur Dernière intervention   5 660
     
    Exemple de code 1.7 : Affichage du bloc de texte souhaité

    $ sed -n -e '/BEGIN/,/END/p' /mon/fichier/texte | more

    Si le mot « BEGIN » n'a pas été trouvé, rien ne sera affiché. De plus, si « BEGIN » a été trouvé, mais que « END » n'a pas été trouvé plus loin, toutes les lignes suivant le « BEGIN » seront affichées. Cela est dû au fait que Sed est un éditeur de flux et donc il ne peut pas deviner à l'avance si « END » sera ou non rencontré.

    http://www.gentoo.org/doc/fr/articles/l-sed1.xml
    0
  7. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Si on reprend ton message #5 dans un fichier et qu'on veuille afficher les lignes partant de "Thu Jan" et jusqu'à la fin du fichier, avec "sed" ça donne :
    sed -n '/Thu Jan/,$ p' fichier
    et si tu ne veux pas que la ligne contenant "Thu Jan" apparaisse, il suffit de l'écrire comme suit :
    sed -n '/Thu Jan/,$ {/Thu Jan/b;p}' fichier
    ou
    sed  '0,/Thu Jan/d' fichier
    ;-))
    0
  8. mïkelkel
     
    merci jipicy,
    je reprend le travail mercredi, j'essay ça dès que j'y suis!! :-)
    0
  9. mïkelkel
     
    bonjour,
    voila, comme prévu j'ai esseyé la commande sed -n '/Thu Jan/,$ p' fichier
    merci jipicy, cela m'a mis sur la bonne voie,
    cela m'affiche bien en résultat le contenu du fichier à partir de Thu Jan
    sauf que, en fait ce que je n'avais pas pensé, c'est que c'est un fichier qui est généré tous les jours, donc la date change tous les jours :-S
    j'ai esseyé une commande du style :
    sed -n '/`date -u "+%a %b"`/,$ p' fichier

    date -u "+%a %b" fonctionne seul et me rend la date du jour (ex. aujourd'hui : Wed Jan)

    mais ne fonctionne pas avec la commande entière!!!

    QU'EST CE QUI NE VA PAS?!?!

    j'espère que quelqu'un pourra me répondre, je suis à deux doigts du but!!
    0
  10. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Re-

    Essaye comme ça :
    DATE=$(date -u "+%a %b")
    sed -n '/'"$DATE"'/,$ p' fichier 
    ;-))
    0
  11. mïkelkel
     
    VERY GOOD jipicy
    c'est bon ça fonctionne!!! :D
    merci beaucoup
    0
  12. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    De rien ;-))
    0