在索引X处更改字符串char

gdo*_*ica 16 unix string bash

我已经搜索了很长时间如何进行简单的字符串操作 UNIX

我有这个字符串:

theStr='...............'
Run Code Online (Sandbox Code Playgroud)

我需要将第5个字符更改为A,如何才能完成?

C#它的完成这样的theStr[4] = 'A'; // Zero based index.

Jør*_*n R 35

您可以使用sed流线编辑器实现此目的:

echo $theStr | sed s/./A/5

首先,您将$ theStr的输出传递给sed,后者用A替换第五个字符.

  • 不,实际上,`.`并不代表字符"dot",但它与所有字符匹配.如果我想匹配点,它会写`\ .` (2认同)

izo*_*ica 13

a="............"
b="${a:0:4}A${a:5}"
echo ${b}
Run Code Online (Sandbox Code Playgroud)

这是关于字符串操作的一个非常好的教程.


vmp*_*str 6

我不知道它是否优雅,或者你需要哪个版本的 bash,但是

theStr="${theStr:0:4}A${theStr:5}"
Run Code Online (Sandbox Code Playgroud)

第一部分返回前四个字符,然后是字符“A”,然后是从第 6 个字符开始的所有字符