gpt4 book ai didi

linux - 在 bash 中用 - 分隔符拆分字符串?

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:06:24 24 4
gpt4 key购买 nike

如何在 Bash 中根据分隔符拆分字符串?

我将字符串存储在一个变量中,如下所示:

DATA="111111-777777-Hello"

现在我想在 - 分隔符上拆分上面的字符串,并将两个数字存储在两个不同的变量中。

NUMBER1="111111"
NUMBER2="777777"

如果 NUMBER1 和 NUMBER2 是空字符串而不是数字,则以非零状态代码退出脚本。

最佳答案

IFS=- read -r number1 number2 _ <<<"$DATA"
[[ $number1 && $number2 ]] || { echo "Initial columns not read" >&2; exit 1; }
[[ $number1$number2 = *[![:digit:]]* ]] && { echo "Values are not numeric" >&2; exit 1; }

echo "Number 1 is $number1"
echo "Number 2 is $number2"

IFS 设置为与 read 命令在同一行的分隔符(没有分隔符,例如 ; between)将其范围限定为单个 read 操作,因此它不会修改脚本中其他地方的 shell 行为。

注意 _ 作为 read 的额外参数——该行的其余部分存储在那里,防止它被附加到 number2.

关于linux - 在 bash 中用 - 分隔符拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39862763/

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