sed를 사용하여 키워드(키워드 포함) 앞의 n 문자를 바꾸시겠습니까?

sed를 사용하여 키워드(키워드 포함) 앞의 n 문자를 바꾸시겠습니까?

모든 것을 교체하기 위해앞으로다음 키워드 코드는 잘 작동합니다.

sed 's/.*keyword/string-to-be-replaced/'

그러나 키워드 앞의 n 문자를 바꾸려면포함하다키워드 해결책을 찾을 수 없습니다. 누구든지 아이디어가 있나요?

답변1

당신에게 필요한 것은n .가리키다.

n=[num]
sed "s/.\{$n\}keyword/REPLACE/"

...어디[num]이는 양의 정수를 나타내는 것이 유효해야 함을 의미합니다.

와는 다르다는 점 참고해주세요.*keyword적어도 몇 가지 중요한 면에서는요.

  1. .*이전에 등장하는 모든 문자에 적용됩니다.마지막일어난keyword패턴 공간 에 sed있으므로 여러 개가 있는 경우keywords한 경기,.*마지막거 빼고 다 먹겠습니다.

    • .\{[num]\}keyword만 일치합니다첫 번째패턴 공간에서 발견할 수 있는 패턴의 발생입니다.
  2. .\{[num]\}~ 할 것이다필요하다적어도[num]- 등장하는 캐릭터의 수를 세어보세요앞으로키워드는 일치를 검증하는 반면.*일치할 수 있다keyword줄의 시작 부분에 있더라도 마찬가지입니다.

    • 일치하므로 이 동작에 더 가까운 표현입니다.에 따라[num]예전에 나왔던 캐릭터들keyword예...

      sed "s/.\{0,$n\}keyword/REPLACE/"
      

관련 정보