Can';t使用sed regex删除空行

Can';t使用sed regex删除空行,regex,sed,linefeed,Regex,Sed,Linefeed,我有这样一个文件: 2733617 3.00 3 3 2733617 E1b1 8.00 8 16 2733617 E1b1b1b 2.00 2 4 2733617 I1 294.00 296 590 2733617 I2 1.00 1 2 2733617 I2a1 2.00 2 4 sed'/^$/d'对我不起作用。Outfile看起来就像infle。它应该删除空行。您也可以尝试: sed -n '/^./p

我有这样一个文件:

2733617     3.00    3   3

2733617 E1b1    8.00    8   16
2733617 E1b1b1b 2.00    2   4

2733617 I1  294.00  296 590
2733617 I2  1.00    1   2

2733617 I2a1    2.00    2   4
sed'/^$/d'
对我不起作用。Outfile看起来就像infle。它应该删除空行。

您也可以尝试:

 sed -n '/^./p'

只打印在行首至少有一个字符的行。(顺便说一句,sed'/^$/d'对我有效)

由于“空白”行中似乎有未知的不可打印字符,您可以重新编写sed命令,仅显示其中包含可打印字符的行:

sed -n '/[!-~]/p'

不幸的是,手册上说使用像
[!-~]
这样的范围是不安全的。但是,仅使用
:print:
打印包含可打印字符的行最终对我有效:

sed -n '/[[:print:]]/p'
要删除空行,请执行以下操作:

sed '/^[[:space:]]*$/d'

检查这些“空”行上是否没有空格(包括回车符):
od-c filename
谢谢您的命令。但是空行中只有“\n”。
sed-nl文件
将显示删除新行后sed看到的内容。每一空行中都有美元符号。真奇怪。你的命令应该有效。你能把od-x的输出发出去吗。您还可以使用
grep-v'^$'
2。如何使用
sed
命令?使用UNIX管道?(
cat文件| sed…
)?也许你是在输出标准错误而不是标准输出?Grep给了我同样的结果。我“sed'blahblah'file>newfile”。这是个老问题,我不知道今天这个神秘的文件在哪里。格伦,对不起。我对
sed
一窍不通。你能解释一下
d
修饰符的作用吗?我用谷歌搜索了一下,没有结果:)