gpt4 book ai didi

bash - 使用 Awk 提取子串

转载 作者:行者123 更新时间:2023-11-29 08:42:40 24 4
gpt4 key购买 nike

给定一个格式为aaa0.bbb.ccc的主机名,我想提取.之前的第一个子字符串,即aaa0在这种情况下。我使用以下 awk 脚本来执行此操作,

echo aaa0.bbb.ccc | awk '{if (match($0, /\./)) {print substr($0, 0, RSTART - 1)}}'

虽然在一台机器A上运行的脚本生成aaa0,但在机器B上运行只生成aaa,最后没有 0 。两台机器都运行 Ubuntu/Linaro,但是 A 运行较新版本的 awk(gawk 版本 3.1.8 而 B 运行较旧的 awk (mawk with版本 1.2)

我一般会问,如何编写执行相同功能的兼容 awk 脚本 ...

最佳答案

您只想将字段分隔符设置为 使用 -F 选项并打印第一个字段:

$ echo aaa0.bbb.ccc | awk -F'.' '{print $1}'
aaa0

同样的事情,但使用剪切:

$ echo aaa0.bbb.ccc | cut -d'.' -f1
aaa0

或者使用sed:

$ echo aaa0.bbb.ccc | sed 's/[.].*//'
aaa0

甚至grep:

$ echo aaa0.bbb.ccc | grep -o '^[^.]*'
aaa0

关于bash - 使用 Awk 提取子串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16040567/

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