さて、ここに簡単な例を示します。3つの手順でホストのIPV4を分離します。
ip -br a
lo UNKNOWN 127.0.0.1/8 ::1/128
eth0 DOWN
wlan0 UP 192.168.0.101/24 fe80::9fcd:45fb:1e0f:a1cc/64
ip -br a | awk '/wlan0/ {print $3}'
192.168.0.101/24
ip -br a | awk '/wlan0/ {print $3}' | awk -F '/' '{print $1}'
192.168.0.101
awk
(の出力を次のインスタンスにパイプする)の2番目のインスタンスを呼び出す代わりに; どのようにすべてを一度に行うことができますか?
言いたかったのは、質問はの出力を解析することではありませんip
。質問を説明するのに役立つ簡単な例が必要でした。これが最初に思いついたものでした。実際の質問はタイトルにまとめられています。
とにかく、それが価値があるもののために(私はそれをチェックする必要がありますが、私はかなり確信しています); これは(最近の)過去に私がやったことです:
ip -br a s dev wlan0 | awk -F '[ /]*' '{print $3}'
192.168.0.101
ip
例の正しい結果が得られます。しかし、OPは、それip
が単なる実例であると言っています。実際の質問は次のとおりです。1awk '{print $3}' | awk -F '/' '{print $1}'
つのawk
コマンドでどのようにすればよいですか/
。入力行の最初または2番目の(空白で区切られた)単語にが含まれている場合、この回答は失敗します。具体的には、その場合、最初の単語の3番目のサブフィールド、または2番目の単語の最初または2番目のサブフィールドを出力します。