Grepは文字列の最初のインスタンスの後に出力を取得します。

Grepは文字列の最初のインスタンスの後に出力を取得します。

私は現在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

おすすめ記事