Nicht sehr gut mit Regex geschweige denn Regex in Grep aber ich bin nah dran, was ich brauche. Ich habe diese Maus, die ich es Ids extrahieren möchte (es hat 2 IDs als Zeiger und eine als Tastatur gedruckt) und ich kann Grep nicht nur die ID-Nummern für Zeigerwerte drucken.Grep Ausgabe nur die Regex passt
Der eingegebene Text ist wie folgt:
⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ ELAN Touchscreen id=12 [slave pointer (2)] ⎜ ↳ DLL06E4:01 06CB:7A13 Touchpad id=13 [slave pointer (2)] ⎜ ↳ Logitech Gaming Keyboard G910 id=17 [slave pointer (2)] ⎜ ↳ Razer Razer DeathAdder Chroma id=20 [slave pointer (2)] ⎜ ↳ Razer Razer DeathAdder Chroma id=21 [slave pointer (2)] ⎜ ↳ Logitech Logitech G633 Gaming Headset id=22 [slave pointer (2)] ⎣ Virtual core keyboard id=3 [master keyboard (2)] ↳ Virtual core XTEST keyboard id=5 [slave keyboard (3)] ↳ Power Button id=6 [slave keyboard (3)] ↳ Video Bus id=7 [slave keyboard (3)] ↳ Video Bus id=8 [slave keyboard (3)] ↳ Power Button id=9 [slave keyboard (3)] ↳ Sleep Button id=10 [slave keyboard (3)] ↳ Integrated_Webcam_HD id=11 [slave keyboard (3)] ↳ AT Translated Set 2 keyboard id=14 [slave keyboard (3)] ↳ Dell WMI hotkeys id=16 [slave keyboard (3)] ↳ Logitech Gaming Keyboard G910 id=18 [slave keyboard (3)] ↳ Razer Razer DeathAdder Chroma id=19 [slave keyboard (3)]
So wie ich nahe kam wird mit diesem Befehl:
xinput --list --short | grep -oP 'Razer.*id=\K([0-9]+)(.*?)pointer'
aber diesen Druck:
20 [slave pointer 21 [slave pointer
Wie kann ich es nur drucken 20
und 21
? pointer
wird benötigt, weil ich nur die IDs von Zeigern möchte.
Wenn Sie haben eine harte Zeit mit regex , vielleicht 'xinput --list --short | grep -i razer | geschnitten -d = f2 | cut -d "" -f1 "ist geradliniger. – Tomalak