search-devices
created 2025-10-07 modified 2025-10-07
#!/bin/bash
# what:
# /proc/bus/input/devices に対し、空行区切りのブロックに対し
# キーワードマッチするものを表示する。
# usage:
# search-devices キーワード
# キーワードは js0 など
do_filter()
{
KEYWORD=$@
# パラメータ指定がなければ...全件表示
if [ -z "$KEYWORD" ]
then
cat
return
fi
# 色付けできる端末ならオプション指定を足す
[ "$TERM" == "xterm-256color" ] && COLOR='--color=yes'
# /proc/bus/input/devices の、空行単位のブロックに対し grep をかける。
# パイプ動作メモ
# - 改行を '\a' に置換することで全出力を1行に
# - '\a\a' を '\a\n\a' に置換して行を分ける
# - キーワードにマッチする行を抽出する
# - '\a' を 改行に置換する
# (なお \a はベル文字。その昔、ビーと音を鳴らすのに使われた)
tr "\n" "\a" \
| sed -e "s|\a\a|\a\n\a|g" \
| grep $COLOR -e "$KEYWORD" \
| sed -e "s|\a|\n|g"
}
echo "showing /proc/bus/input/devices ..."
cat /proc/bus/input/devices \
| do_filter $@