2020年6月5日金曜日

awk - Debian GNU/Linux 10 buster

素人でも使いやすい awkだけど、Debianにインストールされてる mawkを gawkにした。

もともとインストールされてた awkは、mawkにリンクされていた。
/usr/bin/awk -> /etc/alternatives/awk -> /usr/bin/mawk
gawk をインストール (apt install gawk) したら、awkのリンクがgawkに替わった。
/usr/bin/awk -> /etc/alternatives/awk -> /usr/bin/gawk

したかったこと (例) 空行で仕切られた段落を対象に検索表示したい。

1) $ sudo apt install lsinput (PC接続の入力デバイスを表示するコマンド)
 空行で仕切られた段落で各デバイスの接続先を表示する。
 
 $ sudo lsinput

 /dev/input/event0
   bustype : BUS_HOST
   vendor  : 0x0
   product : 0x3
   version : 0
   name    : "Sleep Button"
   phys    : "PNP0C0E/button/input0"
   bits ev : (null) (null)

 /dev/input/event1
   bustype : BUS_HOST
   vendor  : 0x0
   product : 0x1
 ... 略

2) lsinput出力から keyboard を検索して段落を表示したい。
 (目視で探せば済む話)
 Keyboard, keyboards, ... s付き、大文字小文字はどうする? 

3) (m)awkでやったけど、大|小文字がわからない。 gawk (IGNORECASE=1)を使う。
 $ sudo lsinput | awk 'BEGIN{IGNORECASE=1; FS="\n"; RS=""} /keyboard*/'
 dev/input/event5
   bustype : BUS_USB
   vendor  : 0x1a2c
   product : 0xe24
   version : 272
   name    : "SEM USB Keyboard"
   phys    : "usb-0000:00:14.0-10/input0"
   uniq    : ""
   bits ev : (null) (null) (null) (null) (null)
 /dev/input/event6
   bustype : BUS_USB
 ... 略

keyboard 検索で "Keyboard"が引っかかったので良しとする。
以上、素人のジタバタ。