I want to clearify some outputs from grep
for tmux using.
Here is a log:
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
I want to get only date and pci address for FAULT_ADDR string:
Nov 07 14:51:50 03:00.0
Nov 07 14:51:50 02:00.0
Or in perfect way:
Nov 07 14:51:50 ==> 03:00.0
Nov 07 14:51:50 ==> 02:00.0
I've made this:
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/'
but now all results goes in one string, not in row.
I am stuck with grep match, because any group match grep outputs as a new string. Also i didnt understand, how to exclude date capturing from string that doesnt contains FAULT_ADDR.