所以我有 2 个文件夹,里面有很多类似的文件,版本写在文件名中,所以我想做的是检查文件名的开头是否相同(例如“sample-1.12”和“sample-1.13” " 应视为相同)。我只需要在相对文件夹中找到没有类似命名文件的文件。
要检查的文件名的初始部分以第一个破折号、下划线或方括号结尾。
您可以使用${a:|b}
数组减法运算符:
dir1=/some/dir
dir2=/some/other/dir
a=($dir1/*[[_-]*(N:t)) # [t]ail of every file with at least one -, [ or _
b=($dir2/*[[_-]*(N:t))
a=(${a%%[[_-]*}) # strip [*, _* or -* suffix
b=(${b%%[[_-]*})
print -r in $dir1 and not in $dir2:
print -rC1 -- ${a:|b}
print -r in $dir2 and not in $dir1:
print -rC1 -- ${b:|a}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句