sed + 문자열로 단어를 검색하고 모든 단어를 바꿉니다.

sed + 문자열로 단어를 검색하고 모든 단어를 바꿉니다.

다음을 사용하여 만들고 싶습니다 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

관련 정보