ifconfig run0 scan
スペースで区切られたいくつかのフィールドを持つ入力 (たとえば、OpenBSD から) がありますが、一部のフィールド自体にはスペースが含まれています (幸いなことに、スペースを含むフィールドは常に引用符で囲まれています)。
引用符内のスペースと区切りスペースを区別する必要があります。アイデアは、引用符内のスペースをアンダースコアに置き換えることです。
サンプルデータ:
%cat /tmp/ifconfig_scan | fgrep nwid | cut -f3
nwid Websense chan 6 bssid 00:22:7f:xx:xx:xx 59dB 54M short_preamble,short_slottime
nwid ZyXEL chan 8 bssid cc:5d:4e:xx:xx:xx 5dB 54M privacy,short_slottime
nwid "myTouch 4G Hotspot" chan 11 bssid d8:b3:77:xx:xx:xx 49dB 54M privacy,short_slottime
引用符内のスペースをまだアンダースコアに置き換えていないため、希望どおりに処理されません。
%cat /tmp/ifconfig_scan | fgrep nwid | cut -f3 |\
cut -s -d ' ' -f 2,4,6,7,8 | sort -n -k4
"myTouch Hotspot" 11 bssid d8:b3:77:xx:xx:xx
ZyXEL 8 cc:5d:4e:xx:xx:xx 5dB 54M
Websense 6 00:22:7f:xx:xx:xx 59dB 54M