0

ifconfig を分離して、現在の IP、ブロードキャスト、およびネットマスクだけを出力しようとしています。私が直面している問題は、出力がスペースとコロンであるということです。この部分を回避できないように見えるので、何かが欠けているに違いありません。OFS ステートメントが機能していないようです。

ifconfig eth0 | grep "inet addr" | awk -F ':' 'BEGIN{OFS=" ";}{print $2}' 

これを出力します:

127.0.0.1  Bcast

上記は本機のIPです。私は本当にそれを出力したいだけです

127.0.0.1
4

3 に答える 3

1

いくつかの簡単な解決策:

ifconfig eth0 | tr : \  | awk '/inet addr/{ print $3 }'

ifconfig eth0 | tr -s \  | awk '/inet addr/{print $4 }' FS=':| '

また:

ifconfig eth0 | awk '/inet addr/{print $13 }' FS=':| '
于 2012-08-15T18:39:37.793 に答える
1

常に静的文字列を使用することがわかっている場合は、置換だけでうまくいくでしょうか?

ifconfig eth0 | awk '/inet addr/{ sub(/addr:/, "", $2); print $2; }' 
于 2012-08-15T18:41:05.043 に答える
1

sed を使用することもできます。

ifconfig eth0 | sed -n '/inet addr/{s/[^:]*:\([^ ]*\).*/\1/p}'
于 2012-08-15T18:41:55.560 に答える