8

Does anyone know of a simple one liner to read the first line of a file in bash?

5 Answers 5

26
read -r FIRSTLINE < filename

Same result as the other answers but faster because it doesn't spawn any process, as "read" is a built-in bash command.

2
  • good point, +1 for you
    – drAlberT
    Sep 18, 2009 at 12:21
  • This performs much better than doing 'head -n 1'. I was reading the first line of 265 files and my time went from approximately 15 seconds to less than 1 second
    – s3v1
    Nov 25, 2014 at 14:32
16
head -1

simply

2
  • care to explain? :) Oct 10, 2022 at 15:04
  • There few to explain .. simply does what the questions asks :) Retain 1 line at the beginning of a file
    – drAlberT
    Feb 12, 2023 at 11:15
6
FIRSTLINE=`head -n 1 filename`

Stores the line in a variable for later use (note the inverted apostrophes).

4
  • 5
    $(command) is an alternate form that avoid the use of back ticks, not even simple to be found on certain keyboards.
    – drAlberT
    Sep 18, 2009 at 8:48
  • 1
    good answer, but I'm voting down because e-t172's answer is better. Read is intended for this, and it's built-in to bash, as he says.
    – Lee B
    Sep 18, 2009 at 10:13
  • 2
    nah, voting down a "good answer" becouse it is not the best possible is not so polite don't you think?
    – drAlberT
    Sep 18, 2009 at 13:16
  • 3
    Lee - Why not just upvote the one you like instead? Downvotes should only be given for factually incorrect information or off topic stuff.
    – MDMarra
    Sep 19, 2009 at 2:53
2
awk 'NR == 1' /etc/passwd
2
  • 2
    this will scan full file, then return the first line, which is inefficient for large file. read -r is better.
    – Richard
    Mar 12, 2012 at 18:24
  • awk '{ print; exit; }' will return the first line without reading the whole file, so if you cannot use read -r (e.g. because you are not reading into a variable) and don't want to use head for some reason (e.g. it sometimes fails with exit code 141, as it does for me) then that's the awk equivalent.
    – EM0
    Oct 24, 2022 at 9:18
1

head -n 1 should do the trick

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .