ファイルの最初の数行を表示する


24

かなりの数のファイルが入ったフォルダーがあります。次を表示したい:

filename_1
first line of file1
second line of file1
third line of file1
filename_2
first line of file2
second line of file2
third line of file2
filename_3
first line of file3
second line of file3
third line of file3

など。どうすればいいですか?

回答:


54

次のheadように、各ファイルの行数を指定した-n引数を使用して、コマンドを使用してこれを実行します。

head -n3 *

または

head -n3 *.txt

これは単一のファイルでも機能します:

head -n3 filename.txt

コメント(提案されたソリューションのクリーンさが好きです)として、このコマンドはファイル名を書き出すのではなく、ファイルの最初の行だけを書きます
-luri

@luri-本当ですか?Ubuntu headバージョンhead (GNU coreutils) 8.5では、デフォルトでそうなります。それとも、エイリアスを使用していhead --quietますか?
手配

@luri:ファイル名も出力してくれました。
デビッドオニール

くそ、はい...エイリアス(-サイレント、実際には、-静かな)であり、理由はわかりません。アレンジのための2つの答え;)
ルリ

12

オプションheadとともに使用し-nます。

head -n 10 FILE

これにより、ファイルの最初の10行が印刷されます。

別の便利なバリエーションは次のとおりです-n -NUMBER

head -n -10 FILE

これは、ファイルの最後の10行を除くすべてを印刷します。

問題を解決して目的の出力を得るには、次のことを実行できます。

basename * && head -n NUMBER *

または

basename *.FILETYPE && head -n NUMBER *.FILETYPE

これにより、次の出力が得られます。

FILENAME
LINE ONE
LINE TWO
LINE THREE

4

これは望みどおりに動作します。

find . -print -exec head {} -n 3 \;

-printはファイル名を表示し、残り(-からexec)は各ファイルの最初の3行を表示します

必要に応じて番号を変更してください...


1

ファイル名をhead出力に追加するには、「head -v」を使用します。したがって、「head -vn 3 * .html」は私に与えます:

# head -vn 3 *.html
==> WebInfo.html <==
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

==> convert.html <==
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>

==> misc.html <==
<html>
<head>
<title>WIP</title>
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.