텍스트 파일을 기반으로 이름을 바꾸려는 폴더의 파일 목록이 있습니다. 예를 들어:
폴더에 5개의 파일이 있습니다.
101_T1.nii
107_T1.nii
109_T1.nii
118_T1.nii
120_T1.nii
동일한 순서로 새 파일 이름 목록을 포함하지만 확장자는 제외된 텍스트 파일을 사용하여 이름을 바꾸길 원합니다 .nii
.
n01
n02
n03
n04
n05
어떡해?
답변1
하나의 라이너인 이 명령은 "목록" txt를 읽고 파일의 각 줄을 구문 분석합니다.
for file in *.nii; do read line; mv -v "${file}" "${line}"; done < list
답변2
다음을 수행할 수 있습니다.
paste OLD NEW|while read OLD NEW;do mv ${OLD} ${NEW};done
...여기서 "OLD"라는 파일에는 이전 파일 이름이 포함되고 "NEW"라는 파일에는 일치하는 새로운(1:1) 이름이 있습니다.
답변3
쉘이 프로세스 대체를 지원하는 경우 다음을 시도하십시오.
paste -d' ' <(ls *.nii) /path/to/textfile | xargs -n2 mv
또는 POSIXly로 수행할 수 있습니다.
ls *.nii | paste -d' ' - /path/to/textfile | xargs -n2 mv