단일 명령을 사용하여 vi 편집기에서 100줄 삭제

단일 명령을 사용하여 vi 편집기에서 100줄 삭제

우분투를 사용하고 있는데 vi에디터에서 100줄을 모두 삭제하려고 하는데, 명령어 하나로 이걸 하려고 면접 질문에 부딪혔습니다.

답변1

일반 모드에서 실행

100dd

dd현재 행을 삭제합니다. 이 명령을 앞에 붙이면 100100번 반복됩니다.

현재 줄부터 시작하여 파일의 줄이 100개 미만인 경우 구현 방법에 따라 vi줄을 삭제하지 못하거나 모든 줄을 삭제합니다. 의 경우 aka 옵션이 켜져 있는지 여부 vim에 따라 다릅니다 .cpcompatible

답변2

  1. 현재 줄(포함) 100줄 앞으로 삭제

    • dd(현재 행 삭제)를 100회 반복합니다.

      100dd
      
    • 현재 줄부터 처음 99줄까지 삭제

      d99j
      
  2. 현재 줄(포함) 100줄 뒤로 삭제

    d99k
    
  3. 행 번호로 특정 범위의 행 삭제

    :1,100d
    
  4. 현재 행부터 시작하여 행 범위 삭제

    :.,.+99d
    

기타 등등

답변3

만약에모두파일에서 행을 삭제하기 위해 이 vi 명령은 삭제 범위를 지정합니다.

:1,$d

1첫 번째 줄은 $마지막 줄을 의미합니다.

답변4

파일의 어느 위치에 있든 다음을 수행할 수 있습니다.ggdG

:%d더 적은 수의 키 입력으로 더 나은 결과를 얻을 수 있습니다. 글쎄요, shift키와 키를 세어보면 enter실제로는 위보다 두 번 더 많은 키를 누르게 됩니다.

이런 식으로 하면 100dd삭제됩니다에 따라현재 위치에서 100줄 떨어져 있으며 현재 줄 위치에 따라 파일에서 모든 줄을 삭제하지 못할 수도 있습니다.

관련 정보