Как прочитать первую строку файла с помощью cat
?
Как прочитать первую строку файла с помощью cat?
Ответы (11)
Вам не нужно cat
.
head -1 file
будет работать нормально.
head
читает весь файл и вырезает его или читает только 1 строку?
- person CMCDragonkai; 01.05.2015
cat file1 file2 | head
, не читая все file1
и file2
?
- person James Owers; 28.10.2015
head -n 1 file
. Существует аргумент -n
для передачи количества строк.
- person Gustavo Straube; 25.08.2016
Вы этого не сделаете, используйте вместо этого head
.
head -n 1 file.txt
Есть много разных способов:
sed -n 1p file
head -n 1 file
awk 'NR==1' file
Вы могли бы использовать cat file.txt | head -1
, но, вероятно, было бы лучше использовать голову напрямую, как в head -1 file.txt
.
Это может быть невозможно с cat
. Есть ли причина, по которой вы должны использовать cat
?
Если вам просто нужно сделать это с помощью команды bash, это должно сработать для вас:
head -n 1 file.txt
cat
в одиночку может быть невозможно, но если вы не хотите использовать head
, это работает:
cat <file> | awk 'NR == 1'
cat
, не так ли.
- person jkerian; 24.05.2011
awk
великолепен, но cat
здесь не нужен. awk 'NR == 2 {print $0}' <file>
делает то же самое. (И многое другое, если вы немного подучитесь awk
.
- person Eric Wilson; 25.06.2015
Я удивлен, что этот вопрос существует так долго, и никто еще не предоставил встроенный подход pre-mapfile.
IFS= read -r first_line <file
... помещает первую строку файла в переменную, расширенную на "$first_line"
, вот так просто.
Более того, поскольку read
встроен в bash и для этого использования не требуется подоболочка, это значительно эффективнее, чем подходы, включающие подпроцессы, такие как head
или awk
.
IFS=
в начале?
- person Florian Castellane; 24.05.2018
IFS
предотвращает удаление начальных и конечных пробелов из прочитанной строки.
- person Charles Duffy; 24.05.2018
Вам не нужна никакая внешняя команда, если у вас есть bash v4+
< file.txt mapfile -n1 && echo ${MAPFILE[0]}
или если вы действительно хотите cat
cat file.txt | mapfile -n1 && echo ${MAPFILE[0]}
:)
Используйте приведенную ниже команду, чтобы получить первую строку из файла CSV или файлов любых форматов.
head -1 FileName.csv
На этот вопрос есть много хороших ответов. Просто закину еще один в корзину, если хочешь сделать это с lolcat
lolcat FileName.csv | head -n 1
Добавление еще одной неприятной альтернативы в список:
perl -pe'$.<=1||last' file
# or
perl -pe'$.<=1||last' < file
# or
cat file | perl -pe'$.<=1||last'