Arhn - архитектура программирования

Как удалить из шаблона соответствия в определенном столбце до конца файла

Я хочу удалить записи в файле после того, как шаблон будет найден, и удалить все строки из этого шаблона до конца файла.

Я пытался сделать это в awk, но не нашел, есть ли более простой способ сделать это.

Итак, я хочу сопоставить шаблон во втором столбце, а затем удалить записи из этого шаблона до конца файла.

awk -F"," '$2 ~ /100000/ {next} {print}'  file.csv 

Таким образом, приведенный выше код пропускает эти строки, однако, как вы можете видеть, мне нужно добавить несколько шаблонов соответствия, чтобы игнорировать строки после того, как игнорируются те, которые имеют значение 100000 во втором столбце. Обратите внимание, что значения во 2-м столбце отображаются последовательно, поэтому после 100000 следует 100001, а фиксированного конечного числа нет.

08.11.2019

  • Не могли бы вы опубликовать образцы входных данных и ожидаемых результатов в своем вопросе и сообщить нам об этом? 08.11.2019
  • values in 2nd column appear sequentially просто любопытно.. идет ли ваш второй столбец 1,2,3,... ? если это так, вы можете использовать head -n99999 file.csv 08.11.2019

Ответы:


1

Не уверен, правильно ли я понял вашу проблему, ИМХО, я считаю, что вам нужно следующее.

awk '$2==100000{print;exit} 1' Input_file

Это будет печатать до строки, 2-й столбец которой равен 100000, а затем, поскольку вы не хотите ничего печатать, несмотря на то, что просто читаете следующий файл и пропускаете его, это выйдет из кода, что дополнительно сэкономит наше время.

ИЛИ согласно хорошему предложению сэра Эда Мортона:

awk '1; $2==100000{exit}' Input_file
08.11.2019
  • @ user3423407, рад, что помог вам, вы тоже можете выбрать этот ответ как правильный, ура. 08.11.2019
  • 1 = {print}. Дублированный код (например, оператор print), как правило, плох, и вам не нужно печатать из двух мест $2==100000{print;exit} {print}, просто поместите печать в нужное место: {print} $2==100000{exit} или, если вы предпочитаете продолжать использовать 1, это будет 1; $2==100000{exit} 08.11.2019
  • @EdMorton, спасибо, сэр, теперь добавил это решение, сэр, ура. 08.11.2019
  • Новые материалы

    Коллекции публикаций по глубокому обучению
    Последние пару месяцев я создавал коллекции последних академических публикаций по различным подполям глубокого обучения в моем блоге https://amundtveit.com - эта публикация дает обзор 25..

    Представляем: Pepita
    Фреймворк JavaScript с открытым исходным кодом Я знаю, что недостатка в фреймворках JavaScript нет. Но я просто не мог остановиться. Я хотел написать что-то сам, со своими собственными..

    Советы по коду Laravel #2
    1-) Найти // You can specify the columns you need // in when you use the find method on a model User::find(‘id’, [‘email’,’name’]); // You can increment or decrement // a field in..

    Работа с временными рядами спутниковых изображений, часть 3 (аналитика данных)
    Анализ временных рядов спутниковых изображений для данных наблюдений за большой Землей (arXiv) Автор: Рольф Симоэс , Жильберто Камара , Жильберто Кейрос , Фелипе Соуза , Педро Р. Андраде ,..

    3 способа решить квадратное уравнение (3-й мой любимый) -
    1. Методом факторизации — 2. Используя квадратичную формулу — 3. Заполнив квадрат — Давайте поймем это, решив это простое уравнение: Мы пытаемся сделать LHS,..

    Создание VR-миров с A-Frame
    Виртуальная реальность (и дополненная реальность) стали главными модными терминами в образовательных технологиях. С недорогими VR-гарнитурами, такими как Google Cardboard , и использованием..

    Демистификация рекурсии
    КОДЕКС Демистификация рекурсии Упрощенная концепция ошеломляющей О чем весь этот шум? Рекурсия, кажется, единственная тема, от которой у каждого начинающего студента-информатика..