구분 기호를 사용하여 문자열의 마지막 부분을 자르는 방법은 무엇입니까?

구분 기호를 사용하여 문자열의 마지막 부분을 자르는 방법은 무엇입니까?

내 문자열에 구분 기호 밑줄(_)이 있습니다.

입력 -

  1. ABC_테스트
  2. PQR_XYZ_TEST
  3. PQR_XYZ_ABC_TEST

예상 출력 -

  1. 알파벳
  2. PQR_XYZ
  3. PQR_XYZ_ABC

문자열의 마지막 부분만 제거하고 싶습니다. 누구든지 이를 달성하기 위한 더 빠른 방법(아마도 문장으로)을 제안할 수 있습니까?

답변1

string='ABC_TEST'
mod_string="${string%_*}"
echo "$mod_string"
ABC

답변2

기본 sed 명령은 다음과 같습니다.

sed 's/_TEST$//' filename

또는 마지막 항목 이후의 항목을 제거하세요 _.

sed 's/_[^_]*$//' filename

문자열이 다른 명령에서 나온 경우:command | sed ...

변수라면sed ... <<< "${VARIABLE}"

관련 정보