
Como excluímos o registro atual com base no último caractere do registro anterior e no primeiro caractere do registro atual.
exemplo:
abcd|efg
"xyz"|"ghi"
"lmn"|"qrs"
123|abc
O requisito é excluir um registro cujo registro anterior termine com aspas duplas e o registro atual não comece com aspas duplas. No exemplo acima, o 4º registro deve ser excluído da saída.
Responder1
$ awk '(prev !~ /"$/) || ($1 ~ /^"/){print} {prev=$1}' file
abcd|efg
"xyz"|"ghi"
"lmn"|"qrs"
ou se preferir algum destes:
$ awk '!( (prev ~ /"$/) && ($1 !~ /^"/) ){print} {prev=$1}' file
abcd|efg
"xyz"|"ghi"
"lmn"|"qrs"
$ awk '{f=((prev ~ /"$/) && ($1 !~ /^"/)); prev=$1} !f' file
abcd|efg
"xyz"|"ghi"
"lmn"|"qrs"