Найдите совпадения в индексном файле без точного совпадения и распечатайте последнее поле

Сначала поймите, как работает система аудита и как добавлять правила syscall, используя auditctl .

Эта открытая док-страница может быть полезна.

1
14.10.2015, 12:43
1 ответ

Я предполагаю, что файл с индексом не слишком большой, что его можно полностью загрузить в память. Если да, вы можете использовать этот awk :

awk -F"[. ]" 'FNR==NR{a[$0]=1} FNR!=NR&&a[$2"."$3]{print $NF}' index_file huge_file

  • awk вызывается с двумя файлами: index_file с содержимым для поиска и huge_file с много строк, как в вопросе.
  • -F "[.]" установить разделитель awks на пробел и точку.
  • FNR == NR применяется только к index_file
    • a [$ 0] = 1 заполните массив a шаблонами поиска в качестве индексов и установите значение 1 , просто массив построен.
  • FNR! = NR применяется только к huge_file .
  • a [$ 2 "." $ 3] если существует индекс массива поля 2 и поля 3, объединенные точкой (когда шаблон найден) ...
    • print $ NF распечатать последнее поле файла.

Вывод:

ValueA
ValueB
ValueC
0
28.01.2020, 01:33

Теги

Похожие вопросы