문자열을 뒤에서 원하는 만큼 자르는 방법에 대해서 알아보겠습니다.

이 글의 예제들은 Ubuntu 20.04에서 Bash shell을 사용하여 작성되었습니다.

1. 뒤에서 원하는 문자 개수만큼 문자열 자르기

아래 예제는 문자열 뒤에서 length 길이만큼 자릅니다.

  • ${string:(-length)} : 문자열 뒤에서 length 만큼 잘라서 리턴, (string 문자열의 길이 - length) Index 부터 마지막까지 문자열 자르기
#!/bin/bash

string="Hello, World"
length=5

substring=${string:(-length)}

echo "$substring"

Output:

$ bash example.sh
World

다른 예제

만약 뒤에서 5개 문자부터 3개 문자를 자르고 싶을 때는, 아래와 같이 구현하면 됩니다.

#!/bin/bash

string="Hello, World"
echo "${string:(-5):3}"

Output:

$ bash example.sh
Wor

substring 문법

참고로 위에서 사용된 "${STR:offset:length}"는 STR의 offset부터 length 길이만큼 자릅니다.

  • offset은 자르려고 하는 문자열의 시작 index이며, length에는 offset부터 자르고 싶은 길이
echo "${STR:offset:length}"

2. rev와 cut을 이용하여 뒤에서 자르기

아래와 같이 rev와 cut을 사용하여 뒤에서 원하는 길이만큼 문자열을 자를 수 있습니다.

  • cut은 문자열 앞에서 원하는 길이만큼 문자열을 자를 수 있음
  • rev로 문자열의 순서를 뒤집고, cut으로 자르고, 다시 rev로 뒤집으면 뒤에서 원하는 길이만큼 자를 수 있음
#!/bin/bash

string="Hello, World"
length=5

reversed=$(echo "$string" | rev)
substring=$(echo "$reversed" | cut -c 1-$length | rev)

echo "$substring"

Output:

$ bash example.sh
World