gpt4 book ai didi

bash - 提取赋值表达式的值

转载 作者:行者123 更新时间:2023-12-04 06:35:50 25 4
gpt4 key购买 nike

假设我有这个字符串:

a b c d e=x f g h i

仅使用 Linux 命令(如 sedawk)从 e=x 中提取值 x 的最佳*方法是什么? )?

*“最佳”的定义由您决定。

最佳答案

这个怎么样,只使用 Bash:

$ s="a b c d e=x f g h i"
$ s="${s#*=}"
$ echo "${s%% *}"
x

已记录使用的参数扩展 here .

另一个使用sed:

$ s="a b c d e=x f g h i"
$ echo "$s" | sed 's|.*=\([^[:space:]]*\).*|\1|'
x

再次使用 sed:

$ s="a b c d e=x f g h i"
$ echo "$s" | sed 's|.*=||; s|[[:space:]].*||'
x

另一个使用cut:

$ s="a b c d e=x f g h i"
$ echo "$s" | cut -d = -f 2 | cut -d ' ' -f 1
x

我个人最喜欢的是第一个:它只需要 Bash 而不会启动任何额外的进程。

编辑:

根据评论,这里是上面的表达式,修改为专门匹配 e:

$ s="a b c d e=x f g h i"
$ s="${s#*e=}"; echo "${s%% *}"
x
$ s="a b c d e=x f g h i"
$ echo "$s" | sed 's|.*\be=\([^[:space:]]*\).*|\1|'
x
$ echo "$s" | sed 's|.*\be=||; s|[[:space:]].*||'
x

关于bash - 提取赋值表达式的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4893076/

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