VI에서 찾기 및 바꾸기를 시도하여 타임 스탬프를 제거하려고합니다. 나는 보통 S 명령을 사용하여 VI에서이 작업을 수행하지만 VI 내가 콜론을 제거 할 필요가 어떻게 알 수 있습니까 때 VI 명령 자체VI를 사용하여 콜론 제거
EX의 구조의 일부 "xxxxx는 xxxxx는 24:00:00 CDT"
는
s:24:00:00 CDT::g
s:"24:00:00 CDT"::g
s:/:::g
모든 시도 도움을 주시면 감사하겠습니다.
VI에서 찾기 및 바꾸기를 시도하여 타임 스탬프를 제거하려고합니다. 나는 보통 S 명령을 사용하여 VI에서이 작업을 수행하지만 VI 내가 콜론을 제거 할 필요가 어떻게 알 수 있습니까 때 VI 명령 자체VI를 사용하여 콜론 제거
EX의 구조의 일부 "xxxxx는 xxxxx는 24:00:00 CDT"
는
s:24:00:00 CDT::g
s:"24:00:00 CDT"::g
s:/:::g
모든 시도 도움을 주시면 감사하겠습니다.
일반적으로 vi는 명령 문자 다음에 오는 문자를 분리 자로 사용합니다.
이 시도 :
s!24:00:00 CDT!!g
모든 라인이 동일한 타임 스탬프를 가지고 있지 않으면 아주 유용하지 않습니다. –
사실이 특정 문제를 해결하기에 충분했습니다. – homerjay
내 버전의 vi에서는 다음을 수행하여 행에서 콜론을 제거 할 수 있습니다. YMMV.
:s/://g
나를 이길. GVim을 사용 중이며 작동합니다. vi on * nix에 대한 확신이 없습니다. –
질문은 실제로 단일 콜론이 아니라 타임 스탬프를 제거하도록 요구합니다. –
나는 콜론이 문제 였고 OP가 나머지를 어떻게 다뤄야하는지에 대한 질문을했다. 또한 질문 제목은 'VI를 사용하여 콜론 제거'입니다. 그래서 이것은 이것에 대한 최소한의 해석입니다. :) –
s/\d\+:\d\+:\d\+ CDT//g
작품을 나를 위해 :
초기 내용 :
xxxxx xxxxx 24:00:00 CDT
명령 후 :
xxxxx xxxxx
을 당신이 그것을 확인하려는 경우 의지 단, (같이 그 정규식 상기 자릿수> (1)의 임의의 수의 변경) 타임 스탬프에 영향을 미치는 최종 g 패턴의 모든 항목이 아니라 제 한 변하는
s/\d\d:\d\d:\d\d CDT//g
를 사용한다. 이 목록에 하나 개 이상의 시간대가있는 경우
, 그룹을 :
:s/\d\+:\d\+:\d\+^Y \(CDT\|UDT\)//g
그것은 당신이 당신이 원하는 구분 기호를 사용하도록해야하기 때문에, 정말 명령의 일부가 아니다.
%s/\d\{2}:\d{2}:\d{2}//g
여기서 문제는 일치하지 않는 대장,하지만 당신은 정력이 정규식의 분리해서 콜론을 사용해야한다고 가르쳤다 봤는데 -을 :
아마 시도 할 것입니다. 이것은 잘못되었습니다.
awk/vi/perl/ruby (및 그 이상)는 원하는 와타 구분 기호를 지정할 수있게합니다.
s/hello/there/
s:hello:there:
[email protected]@[email protected]
그냥 다른 구분 기호로, 모두 같은 정규식입니다 :이 문자는 (은 S 우리의 경우) 명령 문자 다음 하나의 예입니다.
sMhel/loMthereM
하는 "M"이 가장하지 않을 수 있지만이 flexability은 자주/사용하지만, 당신은 다음과 일치해야하는 경우/정규식에, 당신은 단지 예를 들어, 다른 구분 기호로 전환 할 수 있음을 의미 정규식에 텍스트가 포함되어있을 때의 선택 - 스타일에 따라 다르며 실제로 일치하는 대상에 따라 다릅니다.
대괄호를 사용할 수도 있습니다. 하나의 정규식의 경우는 다음과 같습니다
s[hello]
또는
s(hello)
내가 검색에 생각하고 대체 스타일은 당신이 가능 s[hello][there]
또는 s[hello](there)
를 사용할 수 있습니다. 그러나이 괄호에 대한 마지막 문장은 필자가 perl을 사용할 때 기억 한 추측이다.
질문과 일치하도록 제목을 편집하십시오. 콜론이 아니라 타임 스탬프를 제거하려고한다고 가정합니다. –
아니요, 문제는 여러 개의 콜론을 제거하려는 것입니다. 그것이 타임 스탬프라는 사실은 중요하지 않습니다. 중요한 것은 결장이 결석 구분자가 아님을 인식하지 못한다는 것입니다. – Pod
올바른 포드입니다. 지금까지는 콜론이 전부였습니다. 고맙습니다. – homerjay