実行中ですが、iwconfig | grep -v "no wireless extensions"
-v オプションが期待どおりに機能することはできません。 「ワイヤレス拡張なし」を含む行を除外したいです。つまり、アクティブ/アクティブなワイヤレスインターフェイス、または呼び出す必要がある項目のみを表示したいと思います。
最初は、コマンドが出力するストリームがgrepにパイプされるストリームと異なる場合があると考えてcat myFile | grep -v myExclusionPattern
。これは期待どおりに機能するため、-v
期待どおりに機能すると結論付けられます。その後iwconfig | grep "no wireless extensions"
再試行し、結果が予想された。つまり、iwconfigの出力はgrepにパイプされています。だから-v
。iwconfig
grep
これはiwconfigの出力です。
enp4s0 no wireless extensions.
docker0 no wireless extensions.
lo no wireless extensions.
wlp5s0 IEEE 802.11 ESSID:"myEssid"
Mode:Managed Frequency:5.24 GHz Access Point: 74:83:C2:75:86:2A
Bit Rate=6 Mb/s Tx-Power=30 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
Link Quality=59/70 Signal level=-51 dBm
Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0
Tx excessive retries:0 Invalid misc:747 Missed beacon:0
要約する:
grep -v
.grep
cat
iwconfig
の出力をパイピングするとき(1)と同じ動作を再現できませんgrep
。
grep -vで次の質問を読んでいますが、それらのどれも上記の質問に対する答えを見つけることができませんでした。
ベストアンサー1
iwconfig
インターフェイスの無線拡張が検出されたかどうかに応じて、標準出力と標準エラーで出力されます。パイプは標準出力にのみ影響します。
標準エラーストリームに送信された出力を削除する例(無線拡張を含むインターフェイスのみが表示されます):
$ /usr/sbin/iwconfig 2>/dev/null
wlp4s0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=22 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Power Management:on
標準出力ストリームに送信された出力を削除する例(iwconfig
ワイヤレス拡張が見つからないインターフェイスのみを表示):
$ /usr/sbin/iwconfig >/dev/null
lo no wireless extensions.
enp0s31f6 no wireless extensions.
wwan0 no wireless extensions.
docker0 no wireless extensions.
br-ca679f9ee354 no wireless extensions.
veth232fd86 no wireless extensions.
vboxnet0 no wireless extensions.