줄 끝에 $만 포함된 빈 줄을 제거하는 방법은 무엇입니까?

줄 끝에 $만 포함된 빈 줄을 제거하는 방법은 무엇입니까?

파일이 있습니다:

cat -E extracted_numbers.txt 
11.47$
0.32$
$
1.37192$
-4.$
7.$
20.$
13.$
$0.
15000$
15000.$
$
2.87$
$.6
47.$
$00.
0.0000000000000000$
0.0000000000000000$
$
0.0000000000000000$
0.0000000000000000$
$
0.0000000000000000$
0.0000000000000000$
$
0.0000000000000000$
0.0000000000000000$
$
0.0000000000000000$
0.0000000000000000$
$
0.0000000000000000$
0.0000000000000000$
$
0.0000000000000000$
0.0000000000000000$
$
0.$
0.$
0.$
$.
0.$
0.$
$
$0.
279.33$
$

빈 줄이나 줄의 끝만 포함하는 줄을 제거하는 방법은 무엇입니까? 나는 시도했다:

sed -i '/^$/d' extracted_numbers.txt 

그리고

grep -v '^$' extracted_numbers.txt 

왜 작동하지 않나요? 내가 사용할 수 있는 다음 명령을 아는 사람이 있나요? 감사해요

답변1

무언가를 포함하는 줄을 캡처할 수 있습니다( .RE의 모든 문자와 일치).

grep . file >file.new

이것이 빈 줄이라고 부르는 것과 여전히 일치하는 경우 Windows 줄 끝을 수정해야 할 수 있습니다.

tr -d '\r' <file | grep . >file.new

또는 원하지 않는 빈 줄에 실제로 공백이 포함될 수도 있습니다(Windows 줄 끝 포함).

grep '[^[:space:]]' <file >file.new

내부에서 편집하려는 경우 이 방법은 이름이 지정된 파일에 대해 이식 가능합니다 ( file알려진 파일 이름인 경우 --위 예에서 이와 같은 내용을 생략할 수 있음).

grep . <file >"file.$$.tmp" && mv -f -- "file.$$.tmp" "file"
rm -f -- "file.$$.tmp"

관련 정보