flickr.com에서 여러 이미지를 다운로드하고 이미지 파일과 함께 태그 정보를 별도의 텍스트 파일에 저장하는 방법을 알아냈습니다.
예를 들어:
$ ls
2675.jpg
2675.txt
$ cat 2675.txt
_tags_mountains_daylight_oregon
파일 이름 끝에 태그 정보를 복사하고 싶습니다.
앞으로:
2675.jpg
뒤쪽에:
2675_tags_mountains_daylight_oregon.jpg
이를 수행할 수 있는 방법이 있습니까? Bash 스크립트에 넣을 수 있는 것이 있나요?
답변1
일부 쉘 기본 도구를 사용하십시오.
for f in *.jpg
do
mv -- "$f" "${f%.jpg}$(< ${f%.jpg}.txt ).jpg"
done
이 $(< ...)
구문은 bash에게 주어진 파일의 내용을 읽도록 요청합니다. 주어진 파일은 후행 .jpg
및 추가를 제거하여 추가됩니다 .txt
.
답변2
이 작업을 수행하려면 다음 bash 스크립트를 사용할 수 있습니다.
#!/bin/bash
files='/path/to/files'
for file in "$files/"*.jpg; do
tag=$(grep '_tags_' "${file/.jpg/.txt}")
bname=${file%.jpg}
mv "$file" "${bname}${tag}.jpg"
done
.jpg
이는 지정한 경로의 모든 파일을 반복합니다 .
tag
_tags_
.txt
처리 중인 현재 파일과 동일한 이름을 가진 파일의 문자열 에 대해 Grep을 실행 .jpg
하고 이를 전체 라인으로 설정합니다.
bname
처리 중인 현재 파일의 기본 이름(확장자 없음)으로 설정됩니다.
그런 다음 파일 이름을 name/tag.jpg로 바꿉니다(예제에서도 마찬가지 2675_tags_mountains_daylight_oregon.jpg
).