次の文字列があるとしましょう。
sdffsd sfdfi -ip 192.168.1.1 sdfdf ertret
「192.168.1.1」または他の有効なIPアドレス(それぞれ0から255までの点で区切られた4つの10進数、例えば172.16.254.1)を抽出したいと思います。
最も簡単な方法は、文字列 "-ip"の間と次のスペース(192.168.1.1とsdfdfの間のスペース)の間のすべてのエントリを一致させるようです。
私は試した:
sed -e 's/-s \(.*\)[[:space:]]/\1/'
しかし役に立たない
ベストアンサー1
現在、あなたの質問は「文字列 '-ip'から次のスペースに抽出する方法」です。次のコマンドはこの質問に答えます。
sed -e 's/^.*-ip \([^ ]*\) .*$/\1/'
仕組みは基本的に「空白以外の文字数」です。[^ ]*
$ echo "sdf sfdi -ip 192.168.1.1 sdf eret" | sed -e 's/^.*-ip \([^ ]*\) .*$/\1/'
192.168.1.1