터미널을 사용하여 파일을 여러 번 복사하고 .txt 파일의 내용에 따라 파일 이름을 바꿉니다.

터미널을 사용하여 파일을 여러 번 복사하고 .txt 파일의 내용에 따라 파일 이름을 바꿉니다.

내 폴더에 template.indd라는 파일이 있습니다. 동일한 폴더에 이 파일의 여러 복사본(수백 개)을 만들고 각 복사본의 이름을 텍스트 파일에 포함된 이름으로 바꾸고 싶습니다. 텍스트 파일의 이름은 무작위이고 연속되지 않으며 공백으로 구분됩니다.

저는 Mac OSX 버전 10.6.8에서 터미널을 사용하고 있습니다.

이를 수행할 수 있는 방법이 있습니까?

답변1

xargs해결책

그누 슬램:

xargs -a file.txt -n 1 cp template.indd

Mac에서(@Stéphane Chazelas에게 감사드립니다)

xargs -n 1 < file.txt cp template.indd

설명하다

  • -a( --arg-file): 파일에서 항목 읽기(GNU Bash에만 해당)
  • <GNU가 아닌 대안-a
  • -n 1( --max-args): 실행당 하나의 항목만 추가됩니다.
  • cp template.indd:command xargs는 실행 시 항목을 추가합니다.

답변2

다음을 시도해 보십시오 file.txt. 파일 이름이 포함된 파일은 어디에 있습니까?

for file in $(cat file.txt);do cp template.indd "${file}";done

관련 정보