입력 파일 예:
abcd
<Space>
1234
<Space>
원하는 출력:
abcd
1234
답변1
그것을 통과하세요
sed '/^[[:blank:]]*$/d'
이 sed
명령은 빈 줄이나 공백 및/또는 탭만 포함된 줄을 모두 제거합니다. 정규식은 ^[[:blank:]]*$
빈 줄을 찾은 다음 이를 삭제 d
하는 편집 명령을 사용합니다 sed
.
예를 들어:
sed '/^[[:blank:]]*$/d' <file >newfile
파일은 빈 줄이 제거된 편집된 변형이 newfile
됩니다 .file
또는 공백이 아닌 문자가 포함된 줄만 출력합니다.
sed -n '/[^[:blank:]]/p' <file >newfile
공백이나 탭이 아닌 문자가 하나 이상 포함된 모든 줄이 인쇄됩니다. 나머지 줄은 무시됩니다. 옵션은 각 줄의 기본 출력을 -n
비활성화하고 , 이전 정규식과 일치하는 경우 현재 줄을 출력하는 명령이 뒤에 옵니다 .sed
p
sed
답변2
공백만 포함된 줄과 빈 줄을 제거하려면 다음을 수행하세요.
grep '[^ ]' # ie, match any lines with at least 1 char different from space
또는:
grep -v '^ *$' # ie, hide lines that only contain spaces (0 or n spaces, ie empty lines as well)
빈 줄이나 "탭이나 공백"만 포함된 줄도 제거하려는 경우
grep -v "^[ $(printf '\t')]*$"
답변3
힘 기반 awk
솔루션:
awk 'NF' input.txt
이것은 awk
적어도 하나의 "필드"가 감지된 행만 인쇄합니다(즉, 필드 카운터 NF
가 0이 아닙니다). 공백만 포함되어 있으므로 빈 줄도 제거됩니다.