vi에서 .* 바꾸기

vi에서 .* 바꾸기

다음과 같이 "마침표 별표"를 모두 바꿔야 합니다.

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

그리고:

[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

답변1

콜론으로 구분된 "마침표 별표"가 세 번 반복되는 줄의 예를 들었습니다. 데이터가 항상 이와 같다면 다음을 고수하는 것이 좋습니다.알렉스 P의 답변. 하지만 네 문제는설명하다 "마침표 별표"를 모두 바꿔야 합니다. 만약에성명질문의 정확성을 위해서는 다음을 사용해야 합니다.

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

3개 그룹에 "마침표 별표"가 나타나지 않더라도 찾아 교체해줍니다.

답변2

Wim의 경우::%s/\.\*:\.\*:\.\*/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/g

을 위한 sed: sed -e 's/\.\*:\.\*:\.\*/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/g'.

  • %모든 줄에 대체를 적용하는 수단입니다. sed명령이 모든 줄에 적용될 때 기본적으로 필요하지 않습니다.
  • \.과도한 노출은 .모든 캐릭터를 의미합니다.
  • \*별표는 *0개 이상의 선행 원자를 의미합니다.

답변3

Vim에서 모드 nomagic수정자 사용하기:\M

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

이렇게 하면 패턴 중화의 특이성이 제거됩니다 \M..*

바라보다:help magic윔에서.

관련 정보