그래서 비슷한 파일이 많이 들어 있는 폴더 2개가 있고 파일 이름에 버전이 적혀 있으므로 파일 이름의 시작 부분이 동일한지 확인하고 싶습니다(예: "sample-1.12" 및 " 샘플-1.13"은 동일한 것으로 간주되어야 합니다.) 비슷한 이름의 파일이 없는 반대 폴더에서 파일을 찾으면 됩니다.
확인할 파일 이름의 첫 부분은 첫 번째 대시, 밑줄 또는 대괄호로 끝납니다.
답변1
${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}