gpt4 book ai didi

bash - 如何删除终端中 ip 地址的最后一个八位字节?

转载 作者:行者123 更新时间:2023-12-05 08:45:06 27 4
gpt4 key购买 nike

假设我有一个 IP 地址 123.456.789.01

我想删除最后一个八位字节 123.456.789.01 但不是句点。

所以我剩下的是 123.456.789。

感谢任何帮助。谢谢。

Linux 终端

我尝试分离最后一个八位位组,但这只给我最后一个八位位组 01 而不是 123.456.789。:

$ address=123.456.789.01 
$ oct="${address##*.}"
$ echo "$oct"
01

最佳答案

@WiktorStribiżew 的答案是正确的。

一些其他(更深奥的)技术:

  • 因为 ${address##*.} 删除了最后一个点,留下八位字节,我们可以从字符串的末尾删除 that :

    echo "${address%${address##*.}}"    # => 123.456.789.
  • 使用 extglob shell 选项,我们启用 extended patterns 并可以从字符串末尾删除最长的 一个或多个 数字序列

    shopt -s extglob
    echo "${address%%+([0-9])}"
    # or, with a POSIX character class
    echo "${address%%+([[:digit:]])}"

关于bash - 如何删除终端中 ip 地址的最后一个八位字节?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74199977/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com