У меня есть txt-файл, который содержит 70K строк данных с 8 или около того столбцов. Второй столбец определяет тип данных (SMP или MSG). Внутри этого файла данных имеется 62 ряда данных, идентифицированных как «MSG». Я пытаюсь сделать простую команду awk или даже короткий скрипт python, который удалит 1 строку данных, которая предшествует каждой строке «MSG» в файле. Пример раздела из фактического файла данных:Удалить каждую строку данных, предшествующих строке «MSG» в txt-файле?
976810 SMP 2 144.79 108.25
993461 SMP 2 144.68 108.15
945277 SMP 2 144.90 108.10
945828 SMP 3 144.83 108.31
945237 MSG 3 # Message: 5
943544 SMP 3 144.87 108.58
945209 SMP 3 144.93 108.68
976916 SMP 3 145.17 108.72
997481 SMP 3 140.90 109.33
914197 SMP 4 140.79 109.15
945300 MSG 4 # Message: 0
940848 SMP 4 140.84 109.11
945568 SMP 4 140.91 109.03
945200 SMP 4 141.08 109.01
Таким образом, в приведенном выше примере, мне нужно удалить многопроцессорные строки перед каждой строкой MSG. Я думал, может быть, я бы использовал команду awk для поиска $ 2 == 'MSG', а затем удалить строку MSG-1 или что-то в этом роде. Я очень ценю любые предложения/помощь/рекомендации по этому поводу!
С уважением
Используя приведенный выше пример, можно добавить, что еще раз, но показать, что результат должен выглядеть? Это позволит людям понять ваш вопрос :) – Trevor
Что вы ожидаете, если есть последовательные строки «MSG»? – donkopotamus
Привет! Есть, безусловно, нет последовательных линий MSG. Между каждой строкой MSG всегда имеется не менее 240 строк данных SMP. Причина, по которой мне нужно удалить 1 строку перед каждой строкой MSG, состоит в том, что нумерация имеет небольшую задержку, когда данные получаются (как вы можете сказать выше, число рядом с SMP должно увеличиваться в каждом MSG, но, к сожалению, раз увеличивает испытание # прямо перед MSG даже выскакивает) –