MV: The Garden Murder Case (1936)
-------------------------------------------------------------------------------
MV: The Garden of Allah (1936)
BT: USD 2,200,000
-------------------------------------------------------------------------------
在上面的格式中,我的记录分隔符是------
的行我想删除所有单行记录,因此第一条记录应该下降,第二条记录应该保留。
很简单所以我想。
BEGIN {RS="^[-]+$"}
$0 !~ /^(BT|GR|OW|RT|AD)/ {next}
1
我还尝试检查包含2行结束字符的记录
BEGIN {RS="^[-]+$"}
/$.+$/
1 {next}
两者都没有。
答案 0 :(得分:3)
您无法在记录分隔符中使用^
和$
,因为它们是基于记录分隔符的记录的开头和结尾。
试试这个
awk -vRS="\n-+\n" -F"\n" 'NF>1' file
MV: The Garden of Allah (1936)
BT: USD 2,200,000
如果要保留字段分隔符,则可以使用
awk -vRS="\n-+\n" -F"\n" 'NF>1{printf "%s%s",$0,RT}' file
MV: The Garden Murder Case (1936)
-------------------------------------------------------------------------------
MV: The Garden of Allah (1936)
BT: USD 2,200,000
-------------------------------------------------------------------------------
MV: The Garden Murder Case (1936)
-------------------------------------------------------------------------------
MV: The Garden of Allah (1936)
BT: USD 2,200,000
-------------------------------------------------------------------------------
MV: The Garden of Allah (1936)
BT: USD 2,200,000
-------------------------------------------------------------------------------
MV: The Garden of Allah (1936)
BT: USD 2,200,000
-------------------------------------------------------------------------------