bash,删除文件名中带有字母的文件

bash,删除文件名中带有字母的文件,bash,alphanumeric,rm,Bash,Alphanumeric,Rm,我有如下文件的目录填充: 1000.csv 1001.csv aaa.csv aac.csv 我想删除像aaa.csv和aac.csv这样的文件(基本上是包含[letters].csv的任何文件),但保留包含[Number].csv的文件 在bash中有没有这样做的方法 ls | grep [[:alpha:]*].csv | xargs rm 你应该做你想做的 编辑: ls将列出目录中的文件,然后将该列表传递给grep。 grep将获取该列表,然后仅筛选出以字母开头,然后以.csv结尾的列

我有如下文件的目录填充:

1000.csv
1001.csv
aaa.csv
aac.csv
我想删除像aaa.csv和aac.csv这样的文件(基本上是包含[letters].csv的任何文件),但保留包含[Number].csv的文件

在bash中有没有这样做的方法

ls | grep [[:alpha:]*].csv | xargs rm
你应该做你想做的

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

rm将删除传递其名称的文件。

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

find ./ -type f -name '*[a-z]*.csv' | xargs rm
“/”是放置要删除的文件目录的路径的位置。这也将删除任何包含字母的文件。即使是12h.csv。

最简单的方法:

rm *[a-z]*.csv

这不太管用,当我运行这个命令时,我发现:“rm:缺少操作数”这对我来说很有用…当你在最后没有rm的情况下运行它时,你会得到什么?如果为空,那么grep不会显示任何结果,这可能是最有可能的问题。是的,这就是问题所在,grep不会显示毫无意义的结果。例如,f.csv是该目录中的一个文件。你可以尝试使用egrep,看看是否有这种情况做得更好,或者尝试使用正则表达式来查看更广泛的内容。可能尝试只对单个文件名进行grepping,或者尝试让grep返回所有文件名的列表,看看哪里出了问题。+1因为您之前已经回答过,您的解决方案是有效的@qaphla:)