Как мне прочитать первую строку, используя кошку - PullRequest
155 голосов
/ 24 мая 2011

Как мне прочитать первую строку файла, используя cat?

Ответы [ 9 ]

301 голосов
/ 24 мая 2011

Вам не нужно cat.
head -1 file будет работать нормально.

65 голосов
/ 24 мая 2011

Вы не используете, вместо этого используйте head.

head -n 1 file.txt
38 голосов
/ 06 июля 2012

Есть много разных способов:

sed -n 1p file
head -n 1 file
awk 'NR==1' file
17 голосов
/ 24 мая 2011

Вы можете использовать cat file.txt | head -1, но, вероятно, было бы лучше использовать голову напрямую, как в head -1 file.txt.

15 голосов
/ 24 мая 2011

Это может быть невозможно при cat. Есть ли причина, по которой вы должны использовать cat?

Если вам просто нужно сделать это с помощью команды bash, это должно работать для вас:

head -n 1 file.txt
9 голосов
/ 24 мая 2011

cat само по себе может быть невозможно, но если вы не хотите использовать head, это работает:

 cat <file> | awk 'NR == 1'
5 голосов
/ 17 февраля 2014

Я удивлен, что этот вопрос существует уже давно, и никто еще не предоставил встроенный подход к предварительному отображению файла.

IFS= read -r first_line <file

... помещает первую строку файла в переменную, развернутую на "$first_line", это просто.

Более того, поскольку read встроено в bash и такое использование не требует вложенной оболочки, оно значительно более эффективно, чем подходы, включающие такие подпроцессы, как head или awk.

3 голосов
/ 24 мая 2011

Вам не нужна никакая внешняя команда, если у вас bash v4 +

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

или если вы действительно хотите cat

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

:)

2 голосов
/ 26 июля 2018

используйте приведенную ниже команду для получения первой строки из CSVfile

head -1 FileName.csv

...