[linux] grep을 통해 텍스트 파일에서 빈 줄 제거

FILE:

hello

world

foo

bar

이 모든 빈 새 줄을 어떻게 제거 할 수 FILE있습니까?

명령 출력 :

FILE:

hello
world
foo
bar



답변

grep . FILE


(그리고 당신이 정말로에서 다음, sed를 수행하려는 경우 : sed -e /^$/d FILE)

(그리고 당신이 정말로 다음, AWK에서 작업을 수행하려는 경우 : awk /./ FILE)


답변

다음을 시도하십시오.

grep -v -e '^$'


답변

with awk, just check for number of fields. no need regex

$ more file
hello

world

foo

bar

$ awk 'NF' file
hello
world
foo
bar


답변

다음은 공백이거나 공백 문자 만 포함 된 모든 행을 제거하는 솔루션입니다.

grep -v '^[[:space:]]*$' foo.txt


답변

이 시도: sed -i '/^[ \t]*$/d' file-name

아니오가있는 모든 빈 줄을 삭제합니다. 공백 (공백 또는 탭), 즉 파일의 (0 개 이상).

참고 : 대괄호 안에는 ‘공백’과 ‘\ t’가 있습니다.

수정자는 -i업데이트 된 내용을 파일에 다시 씁니다. 이 플래그가 없으면 화면에서 빈 줄이 삭제 된 것을 볼 수 있지만 실제 파일은 영향을받지 않습니다.


답변

grep '^..' my_file

THIS

IS

THE

FILE

EOF_MYFILE

최소 2 자 이상의 행만 출력으로 제공합니다.

THIS
IS
THE
FILE
EOF_MYFILE

grep '^' my_file출력 결과를 참조하십시오.

THIS

IS

THE

FILE

EOF_MYFILE

또한 grep '^.' my_file출력

THIS
IS
THE
FILE
EOF_MYFILE


답변

빈 줄을 제거하는 것이 공백을 포함하는 줄을 의미하는 경우 다음을 사용하십시오.

grep '\S' FILE

예를 들면 :

$  printf "line1\n\nline2\n \nline3\n\t\nline4\n" > FILE
$  cat -v FILE
line1

line2

line3

line4
$  grep '\S' FILE
line1
line2
line3
line4
$  grep . FILE
line1
line2

line3

line4

또한보십시오: