gpt4 book ai didi

linux - 用纯 bash 提取字符串中间

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:14:44 26 4
gpt4 key购买 nike

说我有...string='第一/第二/第三'

如何仅使用纯 bash(不是 awk/sed 等)并在 1 行中从字符串中提取“second”?

我知道我可以做 ${string#*/} 来获得“第二个/第三个”,但只是“第二个”呢

谢谢!

最佳答案

你可以这样做:

#!/bin/env bash

STRING="first/second/third"

TEXT=$STRING
TEXT=${TEXT#*/}
TEXT=${TEXT%/*}

echo $TEXT

Bash 还支持 regex。这在这里以及其他有更复杂需求的地方很有用。对于您的用例,您可以轻松匹配每个部分并提取它。

#!/bin/env bash

STRING="first/second/third"

[[ $STRING =~ ^([^/]*)/([^/]*)/([^/]*)$ ]] && echo matched

echo [1] ${BASH_REMATCH[1]}
echo [2] ${BASH_REMATCH[2]}
echo [3] ${BASH_REMATCH[3]}

关于linux - 用纯 bash 提取字符串中间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35049938/

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