如何在 unix 中用某些单词对所有文件名进行分类

How to cat all files with filename with certain words in unix

我在一个目录下有一堆文件,我想做的是:

cat a-12-08.json b-12-08_others.json b-12-08-mian.json >> new.json

但是文件太多了,有什么命令可以用来把文件名中带有“12-08”的所有文件都分类吗?

我找到了以下解决方案。

答案如下:

cat *12-08* >> new.json

使用通配符名称:

cat *12-08* >>new.json

只要没有太多文件超过命令行的最大长度ARG_MAX(我检查过的 Linux 系统上为 2MB),这就会起作用。

您可以使用 find 来执行您想要存档的操作:

find . -type f -name '*12-08*' -exec sh -c 'grep "one" {} && cat {} >> /tmp/output.txt' \;

通过这种方式,您可以cat 包含您要查找的单词的文件