Как удалить запись на основе последнего символа предыдущей записи в файле

Как удалить запись на основе последнего символа предыдущей записи в файле

Как удалить текущую запись на основе последнего символа предыдущей записи и первого символа текущей записи.

пример:

abcd|efg
"xyz"|"ghi"
"lmn"|"qrs"
123|abc

требование - удалить запись, предыдущая запись которой заканчивается двойными кавычками, а текущая запись не начинается с двойных кавычек. В приведенном выше примере 4-я запись должна быть удалена из вывода.

решение1

$ awk '(prev !~ /"$/) || ($1 ~ /^"/){print} {prev=$1}' file
abcd|efg
"xyz"|"ghi"
"lmn"|"qrs"

или если вы предпочитаете что-то из этого:

$ 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"

Связанный контент