vi에서. * 바꾸기

여기에 표시된대로 모든 “마침표 별표”항목을 바꿔야합니다.

blah blah .*:.*:.* blah blah 

with :

[0-9][0-9]:[0-9][0-9]:[0-9][0-9] 

최종 결과는 다음과 같습니다.

blah blah [0-9][0-9]:[0-9][0-9]:[0-9][0-9] blah blah 

다음의 다른 변형을 시도했지만 작동하지 않았습니다.

%s_ .*:.*:.* _ [0-9][0-9]:[0-9][0-9]:[0-9][0-9] _g 

답변

마침표 별표가 콜론으로 구분되어 세 번 반복되는 행의 예를 제공했습니다. 데이터가 항상 이와 같이 표시되는 경우 AlexP의 답변 . 그러나 귀하의 질문에 말하고 “마침표 별표”의 모든 항목을 대체해야합니다. 해당 의 문제가 정확합니다.

:%s/\.\*/[0-9][0-9]/g 

3 개 그룹으로 표시되지 않는 경우에도 마침표 별표를 찾아서 대체합니다.

p>

답변

Vim :

sed : sed -e "s/\.\*:\.\*:\.\*/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/g".

  • %는 모든 행에 대체 적용을 의미합니다. 기본적으로 명령이 모든 행에 적용되는 sed에서는 필요하지 않습니다.
  • \.는 마침표입니다. 베어 .는 모든 문자를 의미합니다.
  • \*는 별표입니다. 베어 *는 0 개 이상의 선행 원자를 의미합니다.

Answer

Vim에서 패턴에 nomagic 수정 자 사용 :

:%s/\M.*/[0-9][0-9]/g 

\M는 패턴에서 .*의 특수성을 제거합니다.

참조 Vim의 :help magic

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다