2

我有一个目录填充文件,如下所示:

1000.csv
1001.csv
aaa.csv
aac.csv

我想删除像 aaa.csv 和 aac.csv 这样的文件(基本上任何有 [字母].csv 的文件,但保留有 [数字].csv 的文件

有没有办法在 bash 中做到这一点?

4

3 回答 3

3

这应该按照您的要求执行,但请注意这是一个非常危险的命令,因此请确保您指定正确的路径!

find ./ -type f -name '*[a-z]*.csv' | xargs rm

“./”是您应该放置要删除的文件目录的路径。这也将删除任何包含字母的文件。甚至 12h.csv。

于 2013-08-11T03:01:03.693 回答
2
ls | grep [[:alpha:]*].csv | xargs rm

应该做你想做的。

编辑:
ls 将列出目录中的文件,然后将该列表传递给 grep。
grep 将获取该列表,然后仅过滤掉以字母开头然后以 .csv 结尾的列表,并将此新列表传递给 xargs。
xargs 将获取文件列表并将其作为参数传递给 rm。
rm 将删除其名称传递的文件。

于 2013-08-11T02:49:43.297 回答
1

最简单的方法:

rm *[a-z]*.csv
于 2013-08-11T05:18:09.400 回答