330 votes

Comment obtenir la première ligne d'un fichier dans un bash script ?

Je dois mettre dans une variable bash la première ligne d'un fichier. Je suppose que c'est avec la commande grep, mais y a-t-il un moyen de restreindre le nombre de lignes ?

6voto

Neil McGill Points 338

La question ne demandait pas lequel était le plus rapide, mais pour compléter la réponse de sed, -n '1p' n'est pas très performant car l'espace des motifs est toujours analysé sur les gros fichiers. Par curiosité, j'ai découvert que 'head' l'emporte de justesse sur sed :

# best:
head -n1 $bigfile >/dev/null

# a bit slower than head (I saw about 10% difference):
sed '1q' $bigfile >/dev/null

# VERY slow:
sed -n '1p' $bigfile >/dev/null

0voto

Lire uniquement la première ligne d'un fichier et la stocker dans une variable :

read var < file

echo $var # print only the first line of 'file'

0 votes

Mais la réponse liée inclut cet extrait et plus encore, donc vous n'ajoutez aucune valeur, vous ne faites que répéter.

0 votes

Comment cela s'ajoute-t-il à l'analyse de @fedorqui ? réponse ci-dessous ?

0 votes

Eh bien, ma réponse est un moyen simple d'atteindre l'objectif...

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X