Rechercher : dans
Par :

[sh] Extraire une ligne d'un fichier

Dernière réponse le 4 nov 2009 à 18:01:44 ekra, le 6 fév 2007 à 18:41:37 
 Signaler ce message aux modérateurs

Bonjour à tous

J'aimerais extraire une ligne d'un fichier texte.

J'ai essayé avec :

head -X fichier.txt | tail -1

Le problème est que j'aimerai qu'il me renvoie une chaine vide si la ligne n'existe pas (ici renvoie toujours la derniere ligne).

Peut-être faudrait-il se servir de awk avec \n comme délimiteur, mais comment le faire (awk -F\n ne fonctionne pas) Vive Linux, les vacances et les gauffres !
Configuration: Linux
Firefox 1.0.7

1

jipicy, le 6 fév 2007 à 19:29:54

Salut,

Essaie avec "sed" :

sed -n 'xp' fichier
ou "x" est le numéro de la ligne recherchée...

;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

2

ekra, le 7 fév 2007 à 20:57:46

Merci de ta contrib jipicy, seulement ceci affiche les n premières lignes :p Presque !

Je regarde le man de la commande sed, mais si tu as d'autres propositions, elles sont la bienvenue !

Merci ! Vive Linux, les vacances et les gauffres !

Répondre à ekra

3

jipicy, le 7 fév 2007 à 23:17:07
  • +2

Ou on se comprend mal, ou c'est moi qui ai rien compris ;-\

Tu veux récupérer une ligne bien définie, non ?
Donc :

[jp@MDK tmpfs]$ cat ekra.txt
Ceci est la 1ère ligne
Ceci est la 2ème ligne
Ceci est la 3ème ligne

Ceci est la 5ème ligne
Ceci est la 6ème ligne
Ceci est la 7ème ligne
[jp@MDK tmpfs]$ sed -n '2p' ekra.txt
Ceci est la 2ème ligne
[jp@MDK tmpfs]$ sed -n '4p' ekra.txt

[jp@MDK tmpfs]$ sed -n '5p' ekra.txt
Ceci est la 5ème ligne
[jp@MDK tmpfs]$  
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

4

ekra, le 8 fév 2007 à 00:42:11

Tu as tout a fait raison ! Et je suis désolé de t'avoir fait répété !
En fait je n'avais pas vu le prompt entre deux commendes distinctes (car lignes très treès longues) et j'avai cru que ca affichait plusieurs lignes

Merci ! Vive Linux, les vacances et les gauffres !

Répondre à ekra

5

ben lagha, le 17 mar 2007 à 10:34:44

Bonjour,
j'ai le meme probleme mais cette fois ci le numéro de ma ligne est contenu dans la variable i.
Du coup j'ai essayé plusieurs commandes mais sans succes.

i='2'
sed -n 'ip' ekra.txt
sed -n '$ip' ekra.txt
sed -n '${i}p' ekra.txt

aucune de ces commandes ne fonctionnent.
Pourriez vous m'aidez svp.

Répondre à ben lagha

6

jipicy, le 17 mar 2007 à 10:44:37
  • +1

Salut,

Il faut que la variable soit en dehors des quotes pour qu'elle soit prise en compte :

sed -n $i'p' ekra.txt
;-))
Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé.

Répondre à jipicy

7

ben lagha, le 17 mar 2007 à 10:48:49

Ca MARCHE
Merci enormement pour ton aide.

Répondre à ben lagha

8

ANASS159, le 13 mai 2009 à 03:30:44

Merci vraimeeent jipicy tu ma aider arigatoooo ^^

Répondre à ANASS159

9

jipicy, le 13 mai 2009 à 07:37:28

De rien, c'est fait pour ;-))
$ man woman
Il n'y a pas de page de manuel pour woman.

Répondre à jipicy

10

 tntn, le 4 nov 2009 à 18:01:44

Merci, ça m'a bien aidé aussi

Répondre à tntn