web-dev-qa-db-fra.com

Comment lire la première ligne avec cat

Comment lire la première ligne d'un fichier avec cat?

160
Doboy

Vous n'avez pas besoin de cat.
head -1 file fonctionnera correctement.

308
Carl Norum

Vous n'utilisez pas head à la place.

head -n 1 file.txt
66
Orbling

Il y a beaucoup de façons différentes:

sed -n 1p file
head -n 1 file
awk 'NR==1' file
40
JJJ

Vous pouvez utiliser cat file.txt | head -1, mais il serait probablement préférable d’utiliser directement head, comme dans head -1 file.txt.

19
Mike Pelley

Cela peut ne pas être possible avec cat. Y a-t-il une raison pour laquelle vous devez utiliser cat?

Si vous avez simplement besoin de le faire avec une commande bash, cela devrait fonctionner pour vous:

head -n 1 file.txt
16
mwcz

cat seul ne sera peut-être pas possible, mais si vous ne voulez pas utiliser head, cela fonctionne:

 cat <file> | awk 'NR == 1'
9
josh.trow

Je suis surpris que cette question existe depuis si longtemps et que personne n'a encore fourni l'approche intégrée pré-mapfile.

IFS= read -r first_line <file

... place la première ligne du fichier dans la variable développée par "$first_line", aussi simple que cela.

De plus, étant donné que read est intégré à bash et que cet usage ne nécessite aucun sous-shell, il est nettement plus efficace que les approches impliquant des sous-processus tels que head ou awk.

5
Charles Duffy

Vous n'avez besoin d'aucune commande externe si vous avez bash v4 +

< file.txt mapfile -n1 && echo ${MAPFILE[0]}

ou si vous voulez vraiment cat

cat file.txt | mapfile -n1 && echo ${MAPFILE[0]}

:)

3
jm666

utilisez la commande ci-dessous pour obtenir la première ligne d'un fichier CSV

2
Praveenkumar Sekar