입력 파일에서 공백을 제거하는 방법은 무엇입니까? [복사]

입력 파일에서 공백을 제거하는 방법은 무엇입니까? [복사]

입력 파일 예:

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비활성화하고 , 이전 정규식과 일치하는 경우 현재 줄을 출력하는 명령이 뒤에 옵니다 .sedpsed

답변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이 아닙니다). 공백만 포함되어 있으므로 빈 줄도 제거됩니다.

관련 정보