263

を使用してファイルの最初の行を読み取るにはどうすればよいcatですか?

4

11 に答える 11

482

必要ありませんcat

head -1 file

正常に動作します。

于 2011-05-24T17:06:12.740 に答える
80

head代わりに使用してください。

head -n 1 file.txt
于 2011-05-24T17:07:24.753 に答える
46

さまざまな方法があります。

sed -n 1p file
head -n 1 file
awk 'NR==1' file
于 2012-07-06T12:17:22.563 に答える
23

を使用することもできますcat file.txt | head -1が、おそらく のように head を直接使用する方がよいでしょうhead -1 file.txt

于 2011-05-24T17:07:15.253 に答える
16

これは、 では不可能な場合がありますcat。使用しなければならない理由はありますcatか?

単純に bash コマンドで実行する必要がある場合は、これでうまくいくはずです。

head -n 1 file.txt
于 2011-05-24T17:07:17.940 に答える
10

cat単独では不可能かもしれませんが、これを使用したくない場合は、次のようにhead機能します。

 cat <file> | awk 'NR == 1'
于 2011-05-24T17:16:13.863 に答える
6

I'm surprised that this question has been around as long as it has, and nobody has provided the pre-mapfile built-in approach yet.

IFS= read -r first_line <file

...puts the first line of the file in the variable expanded by "$first_line", easy as that.

Moreover, because read is built into bash and this usage requires no subshell, it's significantly more efficient than approaches involving subprocesses such as head or awk.

于 2014-02-17T18:50:03.600 に答える
3

bash v4+ を使用している場合、外部コマンドは必要ありません

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

またはあなたが本当にしたい場合cat

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

:)

于 2011-05-24T19:16:46.643 に答える
0

この質問に対する適切な答えはたくさんあります。やりたい場合は、別のものをバスケットに入れるだけですlolcat

lolcat FileName.csv | head -n 1
于 2020-09-24T12:51:35.777 に答える