[sh] Extraire une ligne d'un fichier

Résolu/Fermé
ekra Messages postés 1867 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 - 6 févr. 2007 à 18:41
 tntn - 4 nov. 2009 à 18:01
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)

8 réponses

jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
7 févr. 2007 à 23:17
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]$  
;-))
29
jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
6 févr. 2007 à 19:29
Salut,

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

;-))
10
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.
0
jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
17 mars 2007 à 10:44
Salut,

Il faut que la variable soit en dehors des quotes pour qu'elle soit prise en compte :
sed -n $i'p' ekra.txt
;-))
0
Ca MARCHE
Merci enormement pour ton aide.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ANASS159 Messages postés 8 Date d'inscription mercredi 22 avril 2009 Statut Membre Dernière intervention 25 novembre 2009 3
13 mai 2009 à 03:30
Merci vraimeeent jipicy tu ma aider arigatoooo ^^
0
jipicy Messages postés 40805 Date d'inscription jeudi 28 août 2003 Statut Modérateur Dernière intervention 10 août 2020 4 897
13 mai 2009 à 07:37
De rien, c'est fait pour ;-))
0
ekra Messages postés 1867 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 343
7 févr. 2007 à 20:57
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 !
-1
ekra Messages postés 1867 Date d'inscription vendredi 15 avril 2005 Statut Membre Dernière intervention 24 juillet 2014 343
8 févr. 2007 à 00:42
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 !
-3
merci, ça m'a bien aidé aussi
-3