我有大量(4000)相当小的文件 - 平均可能有3行(以及这种类型的几个集合)。文件名的字母顺序对应于预期的阅读顺序。
基本上我想做的是按顺序快速浏览内容,基本上是:
cat * | less
此命令的问题在于我看不到文件的结束位置和新文件的开始位置。
我还要注意,我知道我可以在每个文件的末尾附加一个标记然后将它们组合起来。我的问题是针对一个不需要更改文件或创建新文件的解决方案。
答案 0 :(得分:3)
tail -n +1 * | less
看起来像这样:
==> txts/18091.pdf-000_p01_p1_p01.png.txt <==
Deutscher Bundestag
==> txts/18091.pdf-000_p02_p1_p01.png.txt <==
Stenografischer Bericht
==> txts/18091.pdf-000_p03_p1_p01.png.txt <==
91. Sitzung
==> txts/18091.pdf-000_p04_p1_p01.png.txt <==
Berlin, Donnerstag, den 5. März 2015
答案 1 :(得分:1)
如果你是一个人,想要按顺序浏览大量文件的内容,只需执行
less *
扫描完一个文件后,使用:n
打开下一个文件。
答案 2 :(得分:1)
提示上的一个小循环应该可以解决问题:只需使用find
(或ls
)来获取所需的所有文件名。将这些内容传递给while read
,提供变量名称,然后echo
标记,然后cat
文件。 done
结束循环。将生成的流传输到less
,您应该可以轻松地浏览整个内容。
find . -type f | sort | while read file; do echo "#### $file" ; cat $file; done | less
答案 3 :(得分:1)
您可以在没有循环的情况下使用find
(使用GNU find 4.4.2检查):
find -type f -printf "--< %f >----\n" -exec cat {} \; | less
这与任何shell特性无关(只要你使用GNU find)并且还添加了一个很好的标题:
--< x >----
hello
--< y >----
world