Scripting
使用 bash 腳本從字元串中提取數字
我覺得這應該在某個地方有一個簡單的答案,但我找不到它,所以我在這裡問。
我想編寫一個腳本來禁用我的無線 USB 鍵盤,使用
xinput --disable
.我已經得到
xinput list | grep 2.4G\ Composite\ Devic
了以下輸出。
↳ 2.4G Composite Devic id=29 [slave keyboard (3)]
現在我被困在如何在
id=
可以通過管道傳輸的純數字形式之後獲得在這種情況下的 29xinput --disable
選項的參數
xinput
接受設備名稱作為字元串:$ xinput --list --id-only '2.4G Composite Devic' 29 $ xinput --disable '2.4G Composite Devic' # Equivalent to 'xinput --disable 29'
- 必須是完整名稱(不能包含萬用字元或正則表達式模式)
以防萬一您仍然需要正則表達式,這裡是基於 perl 的解決方案:
echo "↳ 2.4G Composite Devic id=29 [slave keyboard (3)]" | perl -pe 's/.*id=(\d+)\s.*/$1/g'