我有一个文件:
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"