split a text from a specific word

-2
Nov 02 17:20:45 host kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
Nov 02 17:20:45 host kernel: [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0
Nov 02 17:20:47 host kernel: intel_rapl_common: Found RAPL domain package
Nov 02 17:20:47 host kernel: intel_rapl_common: Found RAPL domain core
Nov 02 17:20:47 host kernel: intel_rapl_common: Found RAPL domain uncore
Nov 02 17:20:47 host kernel: intel_rapl_common: Found RAPL domain dram
Nov 02 17:20:48 host kernel: broken atomic modeset userspace detected, disabling atomic
Nov 02 17:20:49 host kernel: r8169 0000:03:00.1 enp3s0f1: Link is Up - 1Gbps/Full
Nov 02 17:20:49 host kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp3s0f1: link becomes ready
Nov 02 17:20:50 host kernel: Bluetooth: RFCOMM TTY layer initialized
Nov 02 17:20:50 host kernel: Bluetooth: RFCOMM socket layer initialized
Nov 02 17:20:50 host kernel: Bluetooth: RFCOMM ver 1.11
Nov 02 17:20:51 host kernel: kauditd_printk_skb: 22 callbacks 
suppressed

i have a text input like above. How can i split this input from "host kernel: ". For the first line, i want to get " [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver " by regex.

python
regex
asked on Stack Overflow Nov 10, 2019 by Leo2

3 Answers

0

You could use python's built in string.split() method:

>>> a = "Nov 02 17:20:45 host kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver"
>>> a.split('host kernel:')[1]
' [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver'
answered on Stack Overflow Nov 10, 2019 by Ari Cooper-Davis
0

Here's one way to do it using regex.

import re

s = 'Nov 02 17:20:45 host kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver'
patt = '.+host kernel: (.+)$'
ans = re.search(patt, s).groups()[0]

print(ans)
--------------------------------------------------
'[drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver'
answered on Stack Overflow Nov 10, 2019 by Jethro Cao
0

Assuming that you have a text block and you don't want the last line ("suppressed")

text = '''Nov 02 17:20:45 host kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
Nov 02 17:20:45 host kernel: [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0
Nov 02 17:20:47 host kernel: intel_rapl_common: Found RAPL domain package
Nov 02 17:20:47 host kernel: intel_rapl_common: Found RAPL domain core
Nov 02 17:20:47 host kernel: intel_rapl_common: Found RAPL domain uncore
Nov 02 17:20:47 host kernel: intel_rapl_common: Found RAPL domain dram
Nov 02 17:20:48 host kernel: broken atomic modeset userspace detected, disabling atomic
Nov 02 17:20:49 host kernel: r8169 0000:03:00.1 enp3s0f1: Link is Up - 1Gbps/Full
Nov 02 17:20:49 host kernel: IPv6: ADDRCONF(NETDEV_CHANGE): enp3s0f1: link becomes ready
Nov 02 17:20:50 host kernel: Bluetooth: RFCOMM TTY layer initialized
Nov 02 17:20:50 host kernel: Bluetooth: RFCOMM socket layer initialized
Nov 02 17:20:50 host kernel: Bluetooth: RFCOMM ver 1.11
Nov 02 17:20:51 host kernel: kauditd_printk_skb: 22 callbacks 
suppressed'''

result = [x.split('host kernel: ')[1] for x in text.split('\n')[0:-2]]
result

['[drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver',
 '[drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0',
 'intel_rapl_common: Found RAPL domain package',
 'intel_rapl_common: Found RAPL domain core',
 'intel_rapl_common: Found RAPL domain uncore',
 'intel_rapl_common: Found RAPL domain dram',
 'broken atomic modeset userspace detected, disabling atomic',
 'r8169 0000:03:00.1 enp3s0f1: Link is Up - 1Gbps/Full',
 'IPv6: ADDRCONF(NETDEV_CHANGE): enp3s0f1: link becomes ready',
 'Bluetooth: RFCOMM TTY layer initialized',
 'Bluetooth: RFCOMM socket layer initialized',
 'Bluetooth: RFCOMM ver 1.11']
answered on Stack Overflow Nov 10, 2019 by igorkf

User contributions licensed under CC BY-SA 3.0