문자열에서 마지막 숫자 제거

문자열에서 마지막 숫자 제거

test.txt다음 내용이 포함된 파일이 있습니다 .

SCDE1
SF9
STR1D2
SREDF21
FRED
STER2R4

마지막 문자가 숫자인 경우에만 제거하고 싶으므로 출력은 다음과 같아야 합니다.

SCDE
SF
STR1D
SREDF2
FRED
STER2R

답변1

이것이 귀하의 기준에 부합합니까?

입력 데이터:

cat user324294
SCDE1
SF9
STR1D2
SREDF21
FRED
STER2R4

그리고 변환:

sed 's/[0-9]$//' user324294 
SCDE
SF
STR1D
SREDF2
FRED
STER2R

정규식에 대한 참고 사항: 줄 끝 이후의 모든 숫자는 아무것도 아닌 것으로 대체됩니다.

답변2

마지막 문자가 숫자이면 제거됩니다.

sed 's|[0-9]$| |g' file

산출:

SCDE
SF
STR1D
SREDF2
FRED
STER2R

답변3

필요한 것은 텍스트와 일치하는 정규식(정규식)입니다.
정규식 일치하나번호는 입니다 [0-9]. 줄의 끝은 입니다 $.
양자:

 [0-9]$

이제 다음을 sed사용하여 각 줄의 텍스트를 삭제할 수 있습니다.

 sed 's/[0-9]$//' test.txt

여러 숫자를 바꿔야 하는 경우 반복 수정자를 사용하세요. 이 경우 *가 될 수 있습니다. 질문하신 내용은 아니지만 알아두면 유용합니다.

 sed 's/[0-9]*$//' test.txt

관련 정보