파일이 있습니다:
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"