3

我有一个这样的文件:

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 看起来就像 infile。它应该删除空行。

4

4 回答 4

3

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

sed -n '/[[:print:]]/p'
于 2012-11-16T11:22:30.063 回答
3

删除空行:

sed '/^[[:space:]]*$/d'
于 2013-06-24T22:41:29.147 回答
2

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

sed -n '/[!-~]/p'
于 2012-06-04T17:15:30.210 回答
0

你也可以试试:

 sed -n '/^./p'

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

于 2012-05-25T14:01:21.280 回答