我正在尝试从/Dir1
中删除/Dir2
中不存在的文件。问题是前几个字符匹配,但不是最后几个。例如。
/Dir1
abc_def.png
xyz_xyz.png
/Dir2
abc_ghi.png
因此,只要“abc”匹配,即使最后几个字符不同,我也不想删除该文件。我要删除的唯一文件是xyz.png
,因为/Dir2
中不存在该文件。我该怎么做呢?
答案 0 :(得分:0)
假设您想在第一个下划线之前匹配部分文件名(如您的示例所示),您可以使用此代码:
cd /Dir1
for f in *_*; do
[[ -f /Dir2/"${f%%_*}"* ]] || echo rm "$f"
done
满意后,请在echo
之前移除rm
。