sed를 사용하여 문자열을 수정하는 방법

sed를 사용하여 문자열을 수정하는 방법

입력 문자열인 문자열이 있고 ./y1563/y1563.xls이를 문자열 출력으로 변환하고 싶습니다 y1563/y1563.txt.

답변1

일반적으로 sed기존 문자열(귀하의 의견을 바탕으로) 쉘 변수에 있습니다. 적어도 문자열의 접미사를 제거 및/또는 교체하려는 경우에는 그렇지 않습니다.

대신에,

NAME=./y1563/y1563.xls
NAME=${NAME%.xls}.txt    # remove .xls suffix, append .txt suffix
NAME=${NAME#./}          # remove ./ prefix (this may not be needed)

이들 ( ${variable%pattern}${variable#pattern})은표준변수 대체변수 값에서 접미사 및 접두사 문자열을 제거합니다.

$NAME값에 개행 문자가 포함되어 있어도 잘 작동합니다. 파일 이름에 줄바꿈이 허용되지만 sed편집기는 줄 중심이므로 이러한 입력을 올바르게 처리하지 못합니다.

관련 정보