줄의 첫 번째 인스턴스를 제외한 모든 인스턴스를 삭제하는 방법은 무엇입니까?줄의 첫 번째 인스턴스를 제외하고 모두 삭제
는 예를 들어, 나는 파일의 내용을 통해 확산 이들의
LOADING CONDITION : LIGHTSHIP CONDITION
여러 가지가 있습니다. 맨 위에있는 첫 번째 인스턴스 만 유지하고 싶습니다.
아이디어 누구?
줄의 첫 번째 인스턴스를 제외한 모든 인스턴스를 삭제하는 방법은 무엇입니까?줄의 첫 번째 인스턴스를 제외하고 모두 삭제
는 예를 들어, 나는 파일의 내용을 통해 확산 이들의
LOADING CONDITION : LIGHTSHIP CONDITION
여러 가지가 있습니다. 맨 위에있는 첫 번째 인스턴스 만 유지하고 싶습니다.
아이디어 누구?
내 PatternsOnText plugin 명령을 제공 참조 (및 기타입니다 이와 관련된 질문은 매우 간단합니다.
:DeleteDuplicateLinesOf /^LOADING CONDITION : LIGHTSHIP CONDITION$/
gg (make cursor back to top)
/LOADING CONDITION : LIGHTSHIP CONDITION (enter)
n
:.,$g//d
범위와 결합 된 :global
명령을 사용할 수 있습니다.
:0/LOADING CONDITION/+,$g//d
설명 :
[range]g/{pat}/{cmd}
실행 기부 라인 범위 내 {pat}
, [range]
일치하는 모든 라인의 명령, {cmd}
.0/LOADING CONDITION/
첫 행부터 시작하면 1로 가정 할 수 있기 때문에 단지 +
단락 될 수있는 첫 번째 인스턴스+1
아래 범위 1 줄을 시작 0/LOADING CONDITION/+1
패턴 LOADING CONDITION
,$
범위의 끝 $
g//
마지막 검색 패턴을 사용하여로 심판으로하는 파일의 마지막 줄 것이다. 이 경우 범위:delete
줄여서 :d
의 패턴은 전직 자세한 내용은 라인을 삭제하는 데 사용 명령
:h :g
:h :d
:h range
장엄한! 나는 매일 Vim에 대해 뭔가를 배웁니다. –
훌륭한 설명과 범위의 일부로 '/ {pattern} /'을 영리하게 사용합니다. –
이미 동일한 질문을하지 않았습니까? 가능한 한 복제본 [행의 첫 번째 인스턴스에만 매달리고 모든 다른 복사본을 삭제] (http://stackoverflow.com/questions/14236226/hanging-only-to-the-first-instance-of-the-line) - 및 - 삭제 - 모든 - 추가 복사본) –
@IngoKarkat - 예, 비슷한. 다른 경우에는 여러 번 반복 된 모든 줄의 첫 번째 인스턴스를 제외한 모든 인스턴스를 삭제하는 데 관심이있었습니다. 그리고 그의 내용은 내가 미리 알지 못한다. 각 복사본을 하나씩 갖고 싶었습니다. 이 경우 내용이 알려진 줄의 첫 번째 복사본 만 제외하고 모두 삭제하려고합니다. 또한, awk/grep /하지 않고 그것을하고 싶습니다 ... 그 도구는 일반적으로 Windows에서 사용할 수 없기 때문에. – Rook
@IngoKarkat 하, 내가이 질문을 보았을 때 나는 언젠가 그 전에 언젠가는 대답했다고 느꼈지만 확실하지는 않았다 ... 그 링크를 발견했다 ... – Kent