【问题标题】:Change string char at index X更改索引 X 处的字符串 char
【发布时间】:2012-03-08 05:58:35
【问题描述】:

UNIX中找了半天如何做一个简单的字符串操作

我有这个字符串:

theStr='...............'

而且我需要把第5个字符改成A,怎么办?

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

【问题讨论】:

    标签: string bash unix


    【解决方案1】:

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

    theStr="${theStr:0:4}A${theStr:5}"
    

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

    【讨论】:

      【解决方案2】:
      a="............"
      b="${a:0:4}A${a:5}"
      echo ${b}
      

      这是一个非常好的tutorial 字符串操作。

      【讨论】:

        【解决方案3】:

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

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

        首先将 $theStr 的输出通过管道传递给 sed,它将第五个字符替换为 A。

        【讨论】:

        • +1。确实 sed 是正确的工具。附带说明,此特定版本仅在输入字符串包含“。”时才有效
        • 不,实际上,. 不代表字符“点”,但它匹配所有字符。如果我想匹配点,它会写\.
        • 哈哈,我写的时候完全没有意识到这一点。这是完美的!
        • 如果文件大小为 8gb,我需要替换位置 4932、4933、4934 的三个字符怎么办?
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-08-27
        • 2011-08-23
        • 2021-12-05
        • 2013-11-23
        相关资源
        最近更新 更多