如何用echo和grep配合删除Linux中含指定字符的多个文件?
解决方法
直接在管道后补充xargs rm即可,完整命令如下:
echo * | grep -E '[cos]' | xargs rm
需要注意的是,你当前使用的grep -E '[cos]'表达式实际是匹配包含c、o、s中任意单个字符的文件名,这可能会误匹配其他含这三个字符之一的文件(如果存在的话)。如果要精确匹配包含"cos"字符串或者仅由c、o、s组成的文件名,建议把grep表达式修改为:
grep -E 'cos|^[cos]+$'
另外,如果文件名包含空格或特殊字符,通过echo传递文件名的方式容易出问题,更稳妥的替代方案是使用find命令:
find . -maxdepth 1 -type f \( -name "*cos*" -o -name "[cos]*" \) -delete
内容的提问来源于stack exchange,提问作者JBatswani
相关产品推荐
相关产品推荐

