我有一个文件夹,里面有很多文件。我想显示以下内容:
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
等等。我怎样才能做到这一点?
答案1
您可以使用head
命令来执行此操作,并使用 -n 参数指定每个文件的行数,如下所示:
head -n3 *
或者
head -n3 *.txt
这也适用于单个文件:
head -n3 filename.txt
答案2
头
您可以使用head
此-n
选项。
head -n 10 FILE
这将打印文件的前十行。
另一个有用的变化是-n -NUMBER
。
head -n -10 FILE
这将打印文件除最后十行之外的所有内容。
为了解决您的问题并获得所需的输出,您可以执行以下操作。
basename * && head -n NUMBER *
或者
basename *.FILETYPE && head -n NUMBER *.FILETYPE
这将获得以下输出:
FILENAME
LINE ONE
LINE TWO
LINE THREE
答案3
希望这能实现您的愿望:
find . -print -exec head {} -n 3 \;
-print
将显示文件名,其余部分(从 - 开始exec
)将显示每个文件的前 3 行
根据您的需要更改数字...
答案4
要将文件名添加到 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>