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
전 방법 시도 :
ex -s +'v/\S/d' -cwq test.txt
여러 파일의 경우 (내부 편집) :
ex -s +'bufdo!v/\S/d' -cxa *.txt
파일을 수정하지 않고 (표준 출력에 인쇄) :
cat test.txt | ex -s +'v/\S/d' +%p +q! /dev/stdin
Perl은 과잉 일 수 있지만 잘 작동합니다.
완전히 비어있는 모든 줄을 제거합니다.
perl -ne 'print if /./' file
완전히 비어 있거나 공백 만 포함하는 모든 줄을 제거합니다.
perl -ne 'print if ! /^\s*$/' file
원본을 편집하고 .bak 파일을 만드는 변형 :
perl -i.bak -ne 'print if ! /^\s*$/' file
빈 줄을 제거하는 것이 공백을 포함하는 줄을 의미하는 경우 다음을 사용하십시오.
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
또한보십시오:
- Unix의 파일에서 빈 / 빈 줄 (공백 포함)을 제거하는 방법은 무엇입니까?
- 쉘의 파일에서 빈 줄을 제거하는 방법은 무엇입니까?
- With
sed
: sed를 사용하여 빈 줄 삭제 - With
awk
: awk를 사용하여 빈 줄 제거
참고URL : https://stackoverflow.com/questions/1611809/remove-empty-lines-in-a-text-file-via-grep
'developer tip' 카테고리의 다른 글
확장 가능한 목록보기에서 모든 하위 항목 확장 (0) | 2020.10.27 |
---|---|
재생성 된 활동에 Retrofit 콜백을 구현하는 모범 사례? (0) | 2020.10.27 |
엔티티 프레임 워크 지정된 메타 데이터 리소스를로드 할 수 없습니다. (0) | 2020.10.26 |
yaml에서 연관 배열 목록을 만드는 방법 (0) | 2020.10.26 |
RuboCop : 줄이 너무 깁니다. <— 무시하는 방법 (0) | 2020.10.26 |