我正在尝试将tun0接口的tun0传递到脚本中。
./start.sh `ip addr | grep tun0 | grep inet`我的问题是,我想不出如何进一步分离这一点,只得到10.10.14.252。
inet 10.10.14.252/23 scope global tun0任何可能使用sed只检索10.10.14.252的帮助都是值得赞赏的。IPV4是动态的,脚本可以在任何环境上执行,并且不一定总是以10.10开头。
ip addr | grep tun0|grep inet|tr ' ' "\n"|grep 10.|tr '/' "\n"|grep 10这行得通,但很长,但很管用。但是我能保证IPV4总是从10开始吗?
发布于 2021-07-11 17:44:14
我建议:
ip -o -4 addr list tun0 | awk -F ' *|/' '{print $4}'发布于 2021-07-11 17:40:11
jq与ip -json的结合
$ ip -j -4 -o addr | jq -r '.[] | select(.addr_info[].dev=="tun0") | .addr_info[].local'发布于 2021-07-11 16:58:02
试试奥克。
ip addr |
awk '/inet/ && /tun0/ {
ip = $2; sub(/\/.*/, "", ip); print ip }'通常,如果您有一个grep进入sed或Awk的管道,则get rid of the grep.
https://stackoverflow.com/questions/68338198
复制相似问题