
私は現在DockerのCentOSイメージを使用しています。私が望むのは、grepが特定の文字列に会った後に特定の値を取得することです。この場合、文字列は「inet」です。
これまで私がしたこと:
# ifconfig | grep 'inet'
私に次のような結果を与えます。
inet 192.168.208.4 netmask 255.255.240.0 broadcast 192.168.223.255
inet 127.0.0.1 netmask 255.0.0.0
ただし、後で環境変数に保存するには、最初のinet IPアドレス(192.168.208.4)のみが必要です。私はawkのようなgrepの代替を使用したいと思います。どんな助けでも大変感謝します。
答え1
複数行のテキストを出力するコマンドがあり、最初の行だけを出力したいと思います。このhead
コマンドは、次の場合に便利です。
ifconfig | grep 'inet' | head -n 1
IPアドレスのみが必要な場合は、次のものを使用できますawk
。
ifconfig | awk '/inet/ { print $2; exit }'
これにより、文字列を含む最初の行から2番目のスペースで区切られたフィールドが抽出され、終了しますinet
。