1

コマンドラインでgrepを使用して文字列プロパティを解析しようとしています。私は以下を使用してプロパティを取得しています:

jarrett@jarrett-g74s:~$ xinput --list-props "FSPPS/2 Sentelic FingerSensingPad"
Device 'FSPPS/2 Sentelic FingerSensingPad':
    Device Enabled (131):   0
    Coordinate Transformation Matrix (133): 1.000000, 0.000000, 0.000000, 0.000000, 1.000000, 0.000000, 0.000000, 0.000000, 1.000000
    Device Accel Profile (257): 0
    Device Accel Constant Deceleration (258):   1.000000
    Device Accel Adaptive Deceleration (259):   1.000000
    Device Accel Velocity Scaling (260):    10.000000
    Device Product ID (248):    2, 15
    Device Node (249):  "/dev/input/event9"
    Evdev Axis Inversion (261): 0, 0
    Evdev Axes Swap (263):  0
    Axis Labels (264):  "Rel X" (141), "Rel Y" (142)
    Button Labels (265):    "Button Left" (134), "Button Middle" (135), "Button Right" (136), "Button Wheel Up" (137), "Button Wheel Down" (138), "Button Horiz Wheel Left" (139), "Button Horiz Wheel Right" (140), "Button Unknown" (251), "Button Unknown" (251), "Button Forward" (254), "Button Back" (255), "Button Unknown" (251), "Button Unknown" (251), "Button Unknown" (251), "Button Unknown" (251)
    Evdev Middle Button Emulation (266):    0
    Evdev Middle Button Timeout (267):  50
    Evdev Third Button Emulation (268): 0
    Evdev Third Button Emulation Timeout (269): 1000
    Evdev Third Button Emulation Button (270):  3
    Evdev Third Button Emulation Threshold (271):   20
    Evdev Wheel Emulation (272):    0
    Evdev Wheel Emulation Axes (273):   0, 0, 4, 5
    Evdev Wheel Emulation Inertia (274):    10
    Evdev Wheel Emulation Timeout (275):    200
    Evdev Wheel Emulation Button (276): 4
    Evdev Drag Lock Buttons (277):  0

プロパティはDevice Enabledです。だから、私はgrepを次のように使います:

jarrett@jarrett-g74s:~$ xinput --list-props "FSPPS/2 Sentelic FingerSensingPad" | grep "Device Enabled (131):"
    Device Enabled (131):   0

これは機能します。ただし、プロパティ文字列全体 (末尾の 0 または 1 を含む) を grep したいので、次のようにします。

jarrett@jarrett-g74s:~$ xinput --list-props "FSPPS/2 Sentelic FingerSensingPad" | grep "Device Enabled (131):*0"

ただし、それは何も返しません。を入れました*0。これは、0 より前のすべての文字をカバーすると考えていました。(私はbashの作業が初めてで、実際にはこれをbashスクリプトで実行していますが、テストのためにコマンドラインでも実行しましたが、まだ機能しません)。

助けていただければ幸いです!!

乾杯

4

1 に答える 1

2

これは、シェル グロブでは正しいですが、正規表現では正しくありません。.*任意の数の任意の文字に一致しますが" *"、任意の数のスペースに対して (引用符なしで、それ以外の場合はスペースが表示されないという理由だけで入力しました) を好むかもしれません。あなたが持っているものは、:*0の直前のゼロ個以上のコロンに一致します0

于 2012-04-21T20:40:02.403 に答える