【问题标题】:Replace character on Shell string替换 Shell 字符串上的字符
【发布时间】:2014-11-18 13:21:02
【问题描述】:

我目前正在 Unix 上制作 connect 4 游戏。

我为板子做了 6 个包含 Array[0]="_ _ _ _ _ _ _" 的字符串数组。

现在的问题是,当玩家放置棋子时,我需要将每个空格 _ 替换为 X

如果用户选择位置 3,array[0] 应该是:_ _ X _ _ _ _

谁能解释一下怎么做?

【问题讨论】:

  • unix 不是编程语言
  • 抱歉,Unix 指的是 Shell。

标签: arrays shell unix


【解决方案1】:
array[0]="_ _ _ _ _ _ _"
array[0]=${array[0]:0:4}X${array[0]:5}
echo ${array[0]}

输出:

_ _ X _ _ _ _

【讨论】:

  • 非常感谢,这正是我所需要的。
【解决方案2】:

您可以为此使用sed

$ r="_ _ _ _ _ _ _"
$ pos=3
$ echo "$r" | sed "s/_/X/$pos"
_ _ X _ _ _ _
$ pos=4
$ echo "$r" | sed "s/_/X/$pos"
_ _ _ X _ _ _

通过说sed "s/_/X/N",您将_ 的第N 次出现替换为X

【讨论】:

  • 可以使用Array 进行更通用的方法,但为此我需要更多上下文。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-11-24
  • 2013-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-14
相关资源
最近更新 更多