Ich nehme an, es ist albern, eine "nutzlose Verwendung von Katze" in einer Linie zu nennen, die speziell für die Verwendung entwickelt wurde cat, nicht wahr?
Jkerian
Diese Methode ist großartig, da Sie jede gewünschte Linie auswählen können.
Desgua
3
@desgua awkist toll, aber du brauchst es cathier nicht. awk 'NR == 2 {print $0}' <file>macht das gleiche. (Und vieles mehr, wenn Sie ein wenig lernen awk.
Eric Wilson
5
Ich bin überrascht, dass es diese Frage schon so lange gibt und noch niemand den in Pre-Mapfile integrierten Ansatz bereitgestellt hat.
IFS= read -r first_line <file
... fügt die erste Zeile der Datei in die um so "$first_line"einfach erweiterte Variable ein .
Da readdiese Funktion in bash integriert ist und für diese Verwendung keine Unterschale erforderlich ist, ist sie außerdem wesentlich effizienter als Ansätze mit Unterprozessen wie headoder awk.
head
die gesamte Datei und schneidet sie aus oder liest sie nur die 1 Zeile?cat <(head file1) <(head file2)
. QuelleVerwenden Sie
head
stattdessen nicht.quelle
Es gibt viele verschiedene Möglichkeiten:
quelle
Sie könnten verwenden
cat file.txt | head -1
, aber es wäre wahrscheinlich besser, den Kopf direkt zu verwenden, wie inhead -1 file.txt
.quelle
Dies ist mit möglicherweise nicht möglich
cat
. Gibt es einen Grund, den Sie verwenden müssencat
?Wenn Sie es einfach mit einem Bash-Befehl tun müssen, sollte dies für Sie funktionieren:
quelle
cat
allein ist möglicherweise nicht möglich, aber wenn Sie dies nicht verwenden möchten,head
funktioniert dies:quelle
cat
, nicht wahr?awk
ist toll, aber du brauchst escat
hier nicht.awk 'NR == 2 {print $0}' <file>
macht das gleiche. (Und vieles mehr, wenn Sie ein wenig lernenawk
.Ich bin überrascht, dass es diese Frage schon so lange gibt und noch niemand den in Pre-Mapfile integrierten Ansatz bereitgestellt hat.
... fügt die erste Zeile der Datei in die um so
"$first_line"
einfach erweiterte Variable ein .Da
read
diese Funktion in bash integriert ist und für diese Verwendung keine Unterschale erforderlich ist, ist sie außerdem wesentlich effizienter als Ansätze mit Unterprozessen wiehead
oderawk
.quelle
IFS=
Teil am Anfang?IFS
verhindert das Löschen, dass führende und nachfolgende Leerzeichen aus der gelesenen Zeichenfolge entfernt werden.Sie benötigen keinen externen Befehl, wenn Sie bash v4 + haben
oder wenn du wirklich willst
cat
:) :)
quelle
Verwenden Sie den folgenden Befehl, um die erste Zeile aus einer CSV-Datei oder einem beliebigen Dateiformat abzurufen.
quelle