поиск строк с помощью awk

У меня есть файл-1, у которого есть список идентификаторов транзакции.

Файл -1

  • Захват в переменных оболочки аргументов после команды (между скобками)
  • Строка Grep с определенным словом из файла в определенном столбце
  • Повторяйте каждую строку несколько раз
  • Извлечение строк появилось последовательно в 3 раза и более в Linux
  • Почему команда grep игнорирует период в строке поиска?
  • Создание копии файла, который автоматически обновляется
  • 201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|10.233.18.29.677220869928387637969 201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|11.233.18.29.677220869928387637969 201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|12.233.18.29.677220869928387637969 

    У меня есть файл-2, в котором есть журналы. У него могут быть трубы в другом месте. Так что труба не может использоваться как разделитель

    Файл-2

     logline-1|somefield fdfdsff dfwwtwtwt **201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|12.233.18.29.677220869928387637969** logline-2|somefield fdfdsff dfwwtwtwt **201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|12.233.18.29.677220869928387637969** logline-3|somefield fdfdsff dfwwtwtwt **201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|10.233.18.29.677220869928387637969** logline-4|somefield fdfdsff dfwwtwtwt **201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|10.233.18.29.677220869928387637969** logline-5|somefield fdfdsff dfwwtwtwt **201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|11.233.18.29.677220869928387637969** 

    Как я могу использовать awk для чтения всего содержимого в файле-1 … grep в файле 2 и создать файл 3, который имеет (идентификатор транзакции – вхождения в файл 2)

    Ожидаемый файл-3

     201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|10.233.18.29.677220869928387637969 2 201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|11.233.18.29.677220869928387637969 1 201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|12.233.18.29.677220869928387637969 2 

  • find + grep для соответствия точных ключевых слов в файле
  • Разница между кошкой * и кошкой * >>
  • Задача сравнения регулярных выражений / шаблонов для извлечения данных
  • Поиск шаблона регулярного выражения для чередующегося символьного случая
  • Строка Grep с определенным словом из файла в определенном столбце
  • Подсчет файлов в листах дерева каталогов
  • One Solution collect form web for “поиск строк с помощью awk”

    Вы можете попробовать с awk:

     awk 'FNR == NR { v[$1] = 0; next; } { v[$4]++; } END { for (elem in v) { print elem, v[elem]; } }' File-1 File-2 >outfile 

    Таким образом, результат будет:

     201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|11.233.18.29.677220869928387637969 1 201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|12.233.18.29.677220869928387637969 2 201503301616|9b8791b3-f860-409f-aad0-24debf834c1b|10.233.18.29.677220869928387637969 2 

    Но опять же я не знаю, зачем вам 2 файла. Вы можете сделать это с помощью File-2:

     awk '{ v[$4]++; } END { for (elem in v) { print elem, v[elem]; } }' File-2 >outfile 

    Результат будет таким же.

    Linux и Unix - лучшая ОС в мире.