sed: 문자열 끝의 문자를 기준으로 문자열의 시작 부분을 바꾸시겠습니까?

sed: 문자열 끝의 문자를 기준으로 문자열의 시작 부분을 바꾸시겠습니까?

줄 끝의 숫자를 기준으로 seda 또는 a를 삽입 하려고 합니다 . 줄이 로 끝나는 경우 로 시작하는 줄이 필요합니다 . 줄이 로 끝나는 경우 로 시작하는 줄이 필요합니다 .foobar1foo2bar

다음 솔루션을 시도했지만 막혔습니다.

sed -e 's/^/foo/;s/:1$/:1/' input.txt
sed -e 's/:1$/^foo/' input.txt

입력하다

aaaaa:1
bbbbb:2
ccccc:1

원하는 출력

fooaaaaa:1
barbbbbb:2
fooccccc:1

답변1

당신은 할 수텍스트 일치로 행 선택그리고 개별 대체 항목을 적용합니다.

$ sed -e '/:1$/s/^/foo/' -e '/:2$/s/^/bar/' input
fooaaaaa:1
barbbbbb:2
fooccccc:1

관련 정보