使用cat命令如下我们可以在屏幕上显示多个文件的内容
cat 文件1 文件2 文件3
但是在一个目录中,如果有超过 20 个文件,并且我希望所有这些文件的内容都显示在屏幕上,而不是使用上面的 cat 命令,通过提及所有文件的名称。
我该怎么做?
您可以使用
*
字符来匹配当前目录中的所有文件。cat *
将显示所有文件的内容。cat *.txt
,或者如果您想像您的示例一样显示文件名以“file”开头的所有文件,您可以使用 cat file*
如果只是一层子目录,则使用
cat * */*
否则,
find . -type f -exec cat {} \;
表示运行
find
命令,在当前目录(.)中搜索所有普通文件(-type f)。对于找到的每个文件,运行应用程序 (-exec) cat,并将当前文件名作为参数({} 是文件名的占位符)。需要转义分号来终止 -exec 子句。
我还发现在打印每个文件的内容之前打印文件名很有用:
find ./ -type f | xargs tail -n +1
它也会遍历所有子目录。
如果您想要执行更多操作,而不仅仅是为每个文件调用一个命令,则使用 for 循环会更加灵活。例如,如果您想打印文件名及其内容
for file in parent_dir/*.file_extension; do echo $file; cat $file; echo; done
你尝试过这个命令吗?
grep . *
它不适合大文件,但适用于 /sys 或 /proc,如果这是您想要看到的。
您也可以使用
awk
。让我们考虑一下我们需要打印目录 some-directory 中的所有文本文件的内容
awk '{print}' some-directory/*.txt
尝试这个命令:
cat Folder/*.txt