Я хочу очистить некоторые выводы из grep
для tmux, используя.
Вот журнал:
Nov 07 14:51:50 SA0888 kernel: amdgpu 0000:03:00.0: VM_CONTEXT1_PROTECTION_FAULT_ADDR 0x001F9122
Nov 07 14:51:50 SA0888 kernel: amdgpu 0000:03:00.0: VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A084002
Nov 07 14:51:50 SA0888 kernel: amdgpu 0000:02:00.0: VM_CONTEXT1_PROTECTION_FAULT_ADDR 0x001F9121
Nov 07 14:51:50 SA0888 kernel: amdgpu 0000:02:00.0: VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A084002
Nov 07 14:51:50 SA0888 kernel: amdgpu 0000:02:00.0: VM_CONTEXT1_PROTECTION_FAULT_STATUS 0x0A084002
Я хочу получить только дату и адрес pci для строки FAULT_ADDR:
Nov 07 14:51:50 03:00.0
Nov 07 14:51:50 02:00.0
Или идеальным способом:
Nov 07 14:51:50 ==> 03:00.0
Nov 07 14:51:50 ==> 02:00.0
Я сделал это:
grep -Po '([A-Za-z]{3} [0-9]{2} [0-9]{2}:[0-9]{2}:[0-9]{2})|(?<=amdgpu 0000:).*?(?=: VM_CONTEXT1_PROTECTION_FAULT_ADDR)' | sed ':a;N;$!ba;s/\n/ PCI /g' | sed 's/$/\n/'
но теперь все результаты идут в одной строке, а не в строке.
Я застрял с соответствием grep, потому что любое сопоставление группы выводит grep как новую строку. Также я не понял, как исключить захват даты из строки, которая не содержит FAULT_ADDR.