从文件中删除特定行

时间:2013-04-29 17:49:37

标签: shell unix sed awk

我有一个像:

这样的文件
NBU82
-------
PBW99
-------
PBE84
-------
PBW110
APSW1474
-------
TSMTBL
CTTRBAPCTRK01
WEBED0075
-------
PBW132
-------

我想删除那些空的(端口后没有任何值) 即只想打印

PBW110
APSW1474
-------
TSMTBL
CTTRBAPCTRK01
EBED0075

2 个答案:

答案 0 :(得分:2)

awk会更容易:

 awk -v RS="---*" -v ORS="-------" 'NF>=2' file 

输出:

PBW110
APSW1474
-------
TSMTBL
CTTRBAPCTRK01
WEBED0075
-------

答案 1 :(得分:1)

这是一个可能的sed命令,它生成与Kent的输出相同的输出:

sed ':a;N;/-$/!ba;/^[[:alnum:]]\+\n-/d' file