我一直在使用 sed 命令。 我尝试使用 sed 命令获取我的网络地址。 我的主人就像
$ hostname -I
192.168.11.12
我只想获取“192.168.11”。从上面的地址。 我试过了
hostname -I | sed -E 's/([0-9]{1,3}\.)([0-9]{1,3}.)([0-9]{1,3}\.)([0-9]{1,3})$/\1\2\3/'
但是它不起作用,我明白了
192.168.11.12
尽管如此
echo "192.168.11.12" | sed -E 's/([0-9]{1,3}\.)([0-9]{1,3}.)([0-9]{1,3}\.)([0-9]{1,3})$/\1\2\3/'
工作正常。 有谁知道出了什么问题吗?
我的环境:Ubuntu 22.04.3 LTS
看起来 sed 命令中的问题与正则表达式模式及其应用方式有关。
试试这个
hostname -I | sed -E 's/([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.).*/\1/'
看看是否有帮助