모든 것을 교체하기 위해앞으로다음 키워드 코드는 잘 작동합니다.
sed 's/.*keyword/string-to-be-replaced/'
그러나 키워드 앞의 n 문자를 바꾸려면포함하다키워드 해결책을 찾을 수 없습니다. 누구든지 아이디어가 있나요?
답변1
당신에게 필요한 것은n
.
가리키다.
n=[num]
sed "s/.\{$n\}keyword/REPLACE/"
...어디[num]
이는 양의 정수를 나타내는 것이 유효해야 함을 의미합니다.
와는 다르다는 점 참고해주세요.*keyword
적어도 몇 가지 중요한 면에서는요.
.*
이전에 등장하는 모든 문자에 적용됩니다.마지막일어난keyword
패턴 공간 에sed
있으므로 여러 개가 있는 경우keywords
한 경기,.*
마지막거 빼고 다 먹겠습니다..\{[num]\}keyword
만 일치합니다첫 번째패턴 공간에서 발견할 수 있는 패턴의 발생입니다.
.\{[num]\}
~ 할 것이다필요하다적어도[num]
- 등장하는 캐릭터의 수를 세어보세요앞으로키워드는 일치를 검증하는 반면.*
일치할 수 있다keyword
줄의 시작 부분에 있더라도 마찬가지입니다.일치하므로 이 동작에 더 가까운 표현입니다.에 따라
[num]
예전에 나왔던 캐릭터들keyword
예...sed "s/.\{0,$n\}keyword/REPLACE/"