Я зеленый горошек в редактировании текста в командной строке (например, awk и grep). У меня есть массив таблиц, и я хочу удалить строки в соответствии со значениями в столбце 4. Я хочу удалить все строки, содержащие значение 1 в столбцах 4, за которым следует то же значение в следующей строке.
А вот список данных,
k141 4797 2466 1
k141 4797 2466 2
k141 23474 11850 1
k141 27428 13800 1
k141 31736 15974 1
k141 35202 17751 1
k141 35202 17751 2
k141 35202 17751 3
k141 35202 17751 4
k141 35202 17751 5
k141 35202 17751 6
k141 35202 17751 7
k141 35202 17751 8
k141 35202 17751 9
k141 46266 23337 1
k141 54599 27445 1
k141 56753 28564 1
k141 56753 28564 2
k141 63661 32007 1
k141 71561 35988 1
k141 71561 35988 2
k141 72661 36561 1
k141 73579 37039 1
k141 84106 42358 1
k141 87251 43930 1
k141 88405 44516 1
k141 88405 44516 2
k141 88405 44516 3
k141 88405 44516 4
k141 89270 44939 1
k141 89270 44939 2
k141 89270 44939 3
k141 89270 44939 4
k141 93137 46825 1
k141 97378 48980 1
k141 97378 48980 2
Мой ожидаемый результат:
k141 4797 2466 1
k141 4797 2466 2
k141 35202 17751 1
k141 35202 17751 2
k141 35202 17751 3
k141 35202 17751 4
k141 35202 17751 5
k141 35202 17751 6
k141 35202 17751 7
k141 35202 17751 8
k141 35202 17751 9
(removal here)
k141 56753 28564 1
k141 56753 28564 2
(removal here)
k141 71561 35988 1
k141 71561 35988 2
(removal here)
k141 88405 44516 1
k141 88405 44516 2
k141 88405 44516 3
k141 88405 44516 4
k141 89270 44939 1
k141 89270 44939 2
k141 89270 44939 3
k141 89270 44939 4
(removal here)
k141 97378 48980 1
k141 97378 48980 2
Большинство методов онлайн удаляют все следующие строки со значениями в столбце 4, равными 1, например, awk !($4 in a){a[$4]++; next} $4 in a
file
Так что я буду благодарен, если кто-нибудь может дать предложения о том, как этого можно достичь.