bash script에서 문자열을 맨앞이나 맨뒤에서 부터 잘라내 버리고 싶은 경우가 있다. 요놈들을 참조하면 원하는 만큼 매치된 문자열을 제거할 수 있다.
${string#substring} - 맨앞에서부터 가장 짧게 매치된 문자열을 지운다.
${string##substring} - 맨앞에서부터 가장 길게 매치된 문자열을 지운다.
${string%substring} - 맨뒤에서부터 가장 짧게 매치된 문자열을 지운다.
${string%%substring} - 맨뒤에서부터 가장 길게 매치된 문자열을 지운다.
간단한 예제로 앞에서 부터 짤라보자.
STR=ABC123abc123ABC
# |--| 가장 짧은거 (#)
# |--------| 가장 긴거 (##)
echo ${STR#A*1} # 23abc123ABC
echo ${STR##A*1} # 23ABC
이번엔 뒤에서 부터 짤라보자.
STR=ABC123abc123ABC
# |--| 가장 짧은거 (%)
# |--------| 가장 긴거 (%%)
echo ${STR%3*C} # ABC123abc12
echo ${STR%%3*C} # ABC12
맨앞이나 맨뒤에서부터 매칭되지 않으면 잘리지 않는다.
echo ${STR#a*c} # ABC123abc123ABC
echo ${STR%%a*c} # ABC123abc123ABC
출처 : https://blog.leocat.kr/notes/2018/01/18/shell-remove-substring
'Programming > 쉘 프로그래밍' 카테고리의 다른 글
소수점 두자리에서 자르기, 소수점 세자리에서 반올림하기 (0) | 2023.09.08 |
---|---|
crontab 내 bash 실행 시 sed 먹통 현상 (0) | 2020.02.12 |
awk 응용 예제 정리 (0) | 2019.01.15 |
쉘스크립트에서 성공여부 확인 방법 (0) | 2017.06.27 |
같은 줄에 문자열 겹쳐 쓰기 (0) | 2017.06.23 |