2-_0002_3.jpg, 2-_0001_4.jpg 같은 형태를 띄고 있는데, 이러한 파일명을
2-3.jpg, 2-4.jpg ... 와 같이 만드는 방법은?
답 :
_ 사이에 있는 것을 없애주면 되는데, 이런 것은
다음과 같이 유닉스 shell script 를 짜면 된다.
# Usage :
# mypho [dirname]
#
# converts filenames from
# 2-_0002_3.jpg, 2-_0001_4.jpg ...
# to
# 2-3.jpg, 2-4.jpg ...
find "$1" -name "*-_*_*.jpg" | while read filename
do
head=${filename%%_*}
tail=${filename##*_}
result=${head}${tail}
mv "$filename" "$result"
done
이것을 mypho 라는 파일에 저장해준 후
mypho [폴더명]하면 자동으로 변환된다.
스크립트 파일을 어디서건 실행되도록 하려면 스크립트가 들어 있는
path를 지정해줘야 하는데 그렇게 하는 방법은 다음에 설명해두었다.
텍스트파일 한글인코딩 자동 수정
설명 (Substring Removal 방법):
${string#substring}
Strips shortest match of $substring from front of $string.
${string##substring}
Strips longest match of $substring from front of $string.
예)
str1=abc_ThisIsMe_ABCabc
str2=${str1#*_}
str3=${str2%_*}
echo $str3
# 결과 : ThisIsMe
레퍼런스 :
Advanced Bash-Scripting Guide: Manipulating Strings
No comments:
Post a Comment