在Bash中列出包含特定字符串的所有文件名

5
在中,如果要列出文件名中包含特定字符串的所有文件,应该怎么做呢?例如,我有以下文件:
test001.csv
test002.csv
test003.csv
result001.csv
result002.csv

我想合并所有文件名中包含字符串“test”的.csv和所有文件名中包含字符串“result”的.csv
3个回答

13

只是:

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

对于所有文件名中包含test的文件(或者第二个条件是包含result的文件)。


4

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

cat *test*.csv >testresult

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

Shell将按字母顺序展开通配符。 大多数shell将遵守您的区域设置,因此“字母顺序”的定义可能取决于当前区域设置。


-3

这是非常简单的方法

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

很酷,像梦一样顺畅。我基本上使用了cat find . -name "*test*.csv" > test.csv - GameOfThrows
1
您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - tripleee
1
但是如果我们应该查看所有子目录,这是正确的👍 这就是为什么这里允许多种观点的原因🙂 - Sergius
问题非常明确,要求在一个目录中查找匹配项。 - tripleee
3
如果任何一个匹配的文件包含空格或特殊模式匹配字符,也是错误的。 - chepner

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接