다음을 사용하여 만들고 싶습니다 sed
.
예를 들어 파일의 (모든 단어)는 ssss...
대상 문자열의 각 단어로 대체되어야 합니다 gggg
.
echo "duwdbnhb ssssssmnfkejfnei" | sed s'/ssssss*/gggg/g'
duwdbnhb ggggmnfkejfnei
해야 한다:
duwdbnhb gggg
비고 - 문자열은 여러 s
문자열일 수 있습니다(예: ss
또는 sss
또는 ssssss
...).
예:
echo "duwdbnhb sssmnfkejfnei" | sed s'/s*/gggg/g'
duwdbnhb gggg
예시 A
echo "rf3 f34kf3ein3e ssghdwydgeug swswww ssswjdbuyhb" | sed s'/ss.*/gggg/'
rf3 f34kf3ein3e gggg
하지만 다음과 같이 인쇄되어야 합니다.
rf3 f34kf3ein3e gggg swswww gggg
예시 B
echo "rf3 f34kf3ein3e ssghdwydgeug swswww ssswjdbuyhb" | sed s'/s.*/gggg/'
rf3 f34kf3ein3e gggg
하지만 다음과 같이 인쇄되어야 합니다.
rf3 f34kf3ein3e gggg gggg gggg
답변1
내가 올바르게 이해했다면 2개 이상의 문자로 시작하는 모든 단어를 바꾸고 싶습니다 s
.
sed s'/ss[^[:blank:]]*/gggg/g'
답변2
넌 할 수있어:
sed -r 's/(^|[[:blank:]])(ss[^[:blank:]]*)/\1gggg/g' file.txt
예:
% echo "rf3 f34kf3ein3e ssghdwydgeug swswww ssswjdbuyhb" | sed -r 's/(^|[[:blank:]])(ss[^[:blank:]]*)/\1gggg/g'
rf3 f34kf3ein3e gggg swswww gggg