vi를 사용하여 파일의 모든 줄을 삭제하는 방법은 무엇입니까?

vi를 사용하여 파일의 모든 줄을 삭제하는 방법은 무엇입니까?

vi를 사용하여 파일의 모든 줄을 삭제하는 방법은 무엇입니까?

현재 나는 파일의 모든 줄을 삭제하기 위해 다음과 같은 것을 사용합니다.

echo > test.txt

을 사용하여 모든 행을 삭제하는 방법은 무엇입니까 vi?

노트: 사용하는 dd것은 좋은 선택이 아닙니다. 행이 많을 수 있습니다.

답변1

vi하고

:1,$d

모든 행을 삭제합니다.

:명령을 소개 하고 커서를 맨 아래로 이동합니다. 다음 명령( )을 실행해야 하는 줄을
나타냅니다 . 이 경우 범위는 첫 번째 줄부터 마지막 ​​줄까지입니다( 로 표시하므로 문서의 줄 수를 알 필요가 없습니다). 마지막은 지정된 행을 삭제하는 것을 나타냅니다.1,$d$
d

더 짧은 형식( :%d)이 있지만 나는 그것을 전혀 사용하지 않습니다. :1,$d"적응"이 더 쉬울 수 있습니다 . 예를 들어 :4,$-2d처음 3개 행과 마지막 2개 행만 유지하고 나머지는 삭제합니다.

답변2

vi에서 나는 사용한다

:%d

어디

  • :vi에게 명령 모드로 들어가도록 지시
  • %모든 행을 의미
  • d: 삭제

명령줄에서,

> test.txt

그것도 할 것이다.

dd 질문이 있으신가요?

dd if=/dev/null of=test.txt

어디

  • /dev/null특수한 0바이트 파일입니다.
  • if입력 파일입니다
  • of출력 파일입니다

답변3

다음을 수행하는 것이 좋습니다(모든 POSIX 호환 셸에서 작동해야 함).

> test.txt

정말로 vi로 하고 싶다면 다음과 같이 하십시오:

  • 1G (첫 번째 행으로 이동)
  • dG(마지막 줄까지 삭제)

답변4

커서가 첫 번째 줄에 있으면(그렇지 않은 경우 : gg또는 입력 1G) 직접 사용할 수 있습니다 dG. 현재 줄부터 파일 끝까지 모든 줄을 삭제합니다. 따라서 파일에서 모든 줄을 제거하려면 두 줄을 함께 혼합하면 됩니다. ( ggdG명령 모드에서)

또는 %dEx 모드에서는 명령줄 예: vim +%d foo.bar.

관련된:VIM에서 현재 줄부터 파일 끝까지 모든 텍스트를 삭제하는 방법은 무엇입니까?

관련 정보