Je suppose qu'il est stupide d'appeler une «utilisation inutile de chat» sur une ligne spécialement conçue pour être utilisée cat, n'est-ce pas?
jkerian
Cette méthode est excellente car vous pouvez choisir n'importe quelle ligne de votre choix.
desgua
3
@desgua awkest génial, mais vous n'en avez pas besoin catici. awk 'NR == 2 {print $0}' <file>fait la même chose. (Et bien plus, si vous apprenez un peu awk.
Eric Wilson
5
Je suis surpris que cette question existe depuis aussi longtemps que cela, et 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, parce qu'il readest intégré à bash et que cette utilisation ne nécessite aucun sous-shell, il est nettement plus efficace que les approches impliquant des sous-processus tels que headou awk.
head
l'intégralité du fichier et le coupe-t-il, ou lit-il uniquement la ligne 1?cat <(head file1) <(head file2)
. SourceVous n'avez pas, utilisez à la
head
place.la source
Il existe de nombreuses façons différentes:
la source
Vous pouvez utiliser
cat file.txt | head -1
, mais il serait probablement préférable d'utiliser directement head, comme danshead -1 file.txt
.la source
Cela peut ne pas être possible avec
cat
. Y a-t-il une raison que vous devez utilisercat
?Si vous avez simplement besoin de le faire avec une commande bash, cela devrait fonctionner pour vous:
la source
cat
seul peut ne pas être possible, mais si vous ne souhaitez pas utiliserhead
ces travaux:la source
cat
, n'est-ce pas?awk
est génial, mais vous n'en avez pas besoincat
ici.awk 'NR == 2 {print $0}' <file>
fait la même chose. (Et bien plus, si vous apprenez un peuawk
.Je suis surpris que cette question existe depuis aussi longtemps que cela, et personne n'a encore fourni l'approche intégrée pré-mapfile.
... place la première ligne du fichier dans la variable développée par
"$first_line"
, aussi simple que cela.De plus, parce qu'il
read
est intégré à bash et que cette utilisation ne nécessite aucun sous-shell, il est nettement plus efficace que les approches impliquant des sous-processus tels quehead
ouawk
.la source
IFS=
partie au début?IFS
empêche les espaces de début et de fin d'être supprimés de la chaîne lue.Vous n'avez besoin d'aucune commande externe si vous avez bash v4 +
ou si vous voulez vraiment
cat
:)
la source
Utilisez la commande ci-dessous pour obtenir la première ligne d'un fichier CSV ou de n'importe quel format de fichier.
la source