gpt4 book ai didi

string - Bash - 如何替换特定索引处的字符(包括索引零)

转载 作者:行者123 更新时间:2023-12-03 21:11:14 27 4
gpt4 key购买 nike

我是 Bash 的初学者。我以前在 Python 中完成了一个挂起 man 程序并尝试用 Bash 做一个类似的程序,但我现在被卡住了。我试图用在正确索引处找到的字母替换“ secret ”的字符。我还没有在网上找到任何可以完全帮助我的东西。
例子:

word="abcdef"
secret="______"
如果在 word 中的索引处找到guess,则:
guess="a"
Outcome: a_____
guess="e"
Outcome: a___e_
我非常接近:
echo $secret | sed s/./$guess/$i
但这在索引为 0 时不起作用。
sed: -e expression #1, char 7: number option to `s' command may not be zero

最佳答案

Bash 对这类程序不是特别好,但它肯定内置了字符串替换。
也许到目前为止在 $correct 中保持正确的猜测并替换所有其余部分。

echo "${secret//[!$correct]/_}"
参数扩展 ${secret//pattern/replacement}产生 $secret 的值每场比赛 pattern替换为 replacement ;图案 [!abc]匹配任何不是 a 的单个字符, b , 或 c . (在模式前有一个斜杠,只有第一个出现被替换。)为了这个工作, $correct不能为空,所以可以将其初始化为 "_"在程序开始时。
如果你真的想要基于索引的字符串处理, ${variable:start:len}$variable 中提取子串.
这些参数扩展是 Bash 特定的; POSIX sh支持更小的操作集。

关于string - Bash - 如何替换特定索引处的字符(包括索引零),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63754381/

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