Rechercher : dans
Par :

Afficher une ligne particulière d'un fichier

Dernière réponse le 22 nov 2007 à 07:55:33 moun, le 21 avr 2005 à 17:27:31 
 Signaler ce message aux modérateurs

Bonjour

je voudrais savoir comment extraire ou afficher une ligne particulière d'un fichier en shell (par exemple : la ligne 3 du fichier toto) pour en faire une variable

merci

Meilleures réponses pour « afficher une ligne particulière d'un fichier » dans :
Afficher les extensions et les fichiers cachés sous Windows VoirPour afficher les extensions Solution simple Solution avec le registre Pour afficher les fichiers et les dossiers cachés Pour afficher les fichiers et les dossiers système Pourquoi afficher les extensions ? Lorsque vous ne voyez...
Sed - Supprimer une ou plusieurs lignes d'un fichier VoirSupprimer une (ou plusieurs) ligne(s) d'un fichier Syntaxe sed '{[/]||[/]}d' sed '{[/][,][/]d' /.../ = délimiteurs n = le numéro de ligne chaîne = la chaîne contenue dans la...
Perl - Les fichiers VoirLa notion de filehandle On appelle filehandle (traduisez descripteur de fichier), dans un programme Perl, le nom permettant de manipuler une connexion d'entrée-sortie (les entrées-sorties standards vues précédemment sont connues par les filehandles...
Commandes UNIX VoirTableau des principales commandes UNIX Commande Unix Description Options ls liste le contenu d'un répertoire -a Affiche tous les fichiers, y compris les fichiers cachés ...
UNIX - Les fichiers VoirIntroduction aux fichiers Unix Sous les systèmes UNIX tout élément est représenté sous forme de fichier. L'ensemble des fichiers est architecturé autour d'une unique arborescence dont la base, appelée racine, est notée «/». Types de...

1

kmf31, le 21 avr 2005 à 17:37:16
  • +1

Pour avoir la ligne X (=nombre comme 1,2,3, ...) tu peux faire:

LINE=`head -X fichier | tail -1`

(ici tu remplace X par le nombre et fichier par le nom de ton fichier).

Apres tu peux chercher pour un mot avec:

LINE=`grep mot fichier`

pour avoir (toutes) les lignes du fichier contenant "mot" (tu mettras ce que tu veux).

Regarde la doc avec "man grep", "man tail", "man head" etc.

Apres le resultat se trouve dans $LINE, donc pour afficher tu fais:

echo $LINE

Répondre à kmf31

2

crabs, le 21 avr 2005 à 17:38:21
  • +2

Salut,
Doit y avoir pas mal de solutions, perso
j'utilise une combinaison de head et tail si le fichier est petit (-de 8ko)

var=`head -$nu_ligne $fichier | tail -1`

Ou alors awk pour les fichiers plus gros
var=`awk -v l=$nu_ligne 'NR==l{ print }' $fichier`

Bien sur nu_ligne est la variable contenant le numéro de ligne,
fichier le chemin d'accès au fichier.
A+ Besides, I think Slackware sounds better than 'Microsoft,'
-- Patrick Volkerding

Répondre à crabs

3

jipicy, le 21 avr 2005 à 21:56:11
  • +1

Salut,

Tu peux faire ça avec "sed" aussi:
soit le fichier "fich"

[jp@Mandrake scripts]$ cat fich

nom_fichier_1 ; commentaire associé au fichier 1
nom_fichier_2 ; commentaire associé au fichier 2
nom_fichier_4 ; commentaire associé au fichier 4
nom_fichier_5 ; commentaire associé au fichier 5
nom_fichier_7 ; commentaire associé au fichier 7
nom_fichier_9 ; commentaire associé au fichier 9
nom_fichier_10 ; commentaire associé au fichier 10
nom_fichier_12 ; commentaire associé au fichier 12
nom_fichier_14 ; commentaire associé au fichier 14
nom_fichier_15 ; commentaire associé au fichier 15
nom_fichier_16 ; commentaire associé au fichier 16

Pour extraire la 3 ème ligne
[jp@Mandrake scripts]$ sed -n 3p fich
nom_fichier_4 ; commentaire associé au fichier 4

La 5 ème :
[jp@Mandrake scripts]$ sed -n 5p fich
nom_fichier_7 ; commentaire associé au fichier 7

Pour la récupérer dans une variable :
[jp@Mandrake scripts]$ var=`sed -n 5p fich`
[jp@Mandrake scripts]$ echo $var
nom_fichier_7 ; commentaire associé au fichier 7
[jp@Mandrake scripts]$
;-)) Z'@+...che.
JP : Zen, my Nuggets ! ;-)
Le savoir n'est bon que s'il est partagé. 

Répondre à jipicy

4

 pilo, le 22 nov 2007 à 07:55:33

Bonjour,
merci pour les tips !
depuis des années je fais des :

$ cat FICHIER |grep -n '' | grep "^$NUM_LIGN:"


un peu gore ...
ma vie va changé :p

Répondre à pilo
Collection CommentÇaMarche.net