bash cat 所有文件名中包含特定字符串的文件

bash cat all files that contains a certain string in file name

bash 中,您如何 cat 目录中的所有文件在其文件名中包含特定字符串。例如我的文件名为:

test001.csv
test002.csv
test003.csv
result001.csv
result002.csv

我想cat所有.csv文件名中包含字符串test的所有.csv和所有包含result字符串的.csv在文件名中。

方法很简单

cat `find . -name "*test*.csv"`

刚刚:

cat *test*.csv
cat *result*.csv

对于名称中带有 test(或者如果是第二个 result)的所有文件。

shell本身可以轻松找到所有匹配简单通配符的文件。

cat *test*.csv >testresult

您要注意不要让输出文件的名称与通配符匹配。 (这在技术上是无害的,但是很好的做法。)

shell 将按字母顺序扩展通配符。大多数 shell 将遵循您的语言环境,因此 "alphabetical order" 的定义可能取决于当前的语言环境设置。