
vi로 파일을 열 때
~처럼
vi file
Current partition replica assignment
@
@
@
@
@
{"version":1,"partitions":[{"topic")]
@
@
@
@
@
Proposed partition reassignment configuration
그런데 이 빈 줄을 삭제하려고 해요
~처럼
sed -i 's/^ *//; s/ *$//; /^$/d; /^\s*$/d' file
또는
sed -i '/^$/d' file
또는
sed -i '/^$/d' file
여전히 파일에 빈 줄이 있습니다
빈/빈 줄을 제거하는 방법은 무엇입니까?
답변1
사람들은~ 아니다빈 줄이지만 줄 바꿈 후에도 줄이 너무 길어서 화면에 표시되지 않습니다.
$ perl -e 'print "foo\n", "bar " x 4096' >/tmp/file
$ vim /tmp/file
foo
@
@
@
...
이것이 바로기준말한다:
시각적 모드에서 편집 버퍼의 줄(현재 줄 제외)이 표시에 사용할 수 있는 디스플레이 하단의 줄에 완전히 맞지 않으면 편집기는 해당 줄의 어떤 부분도 표시하지 않도록 선택할 수 있습니다. . 이러한 이유로 편집 버퍼의 텍스트를 포함하지 않는 디스플레이 라인은 각각 단일 '@' 문자로 구성됩니다.
vim
또한 옵션 에 대한 의 문서를 살펴보십시오 display
.
"lastline"이나 "truncate"가 모두 포함되지 않으면 맞지 않는 마지막 줄은 "@" 줄로 대체됩니다.
^@
일반적으로 (캐럿 주의) 로 표시되는 널 바이트와 혼동하지 마십시오 . 또한 이 동작은 보편적이지 않습니다( 에서는 구현되지 않은 것 같습니다 nvi
).
답변2
그것은 나에게 잘 작동합니다. 아마도 파일에 do null 값이 있어야 할 것입니다.
보려면:
vim -b file
유닉스로 변환하려면
dos2unix file
답변3
나는 그것들이 널 바이트라고 믿습니다. cat -A file
다음과 같이 표시됩니다.^@
tr
다음을 처리할 수 있습니다.
tr -d '\0' < file > file.new