我有“我爱苏子和结婚”,我想把“苏子”改成“萨拉”。
firstString="I love Suzi and Marry"
secondString="Sara"
期望的结果:
firstString="I love Sara and Marry"
最佳答案
要用给定字符串替换第一次 出现的模式,请使用 ${<em>parameter</em>/<em>pattern</em>/<em>string</em>}
:
#!/bin/bash
firstString="I love Suzi and Marry"
secondString="Sara"
echo "${firstString/Suzi/"$secondString"}"
# prints 'I love Sara and Marry'
要替换出现的所有,请使用${<em>parameter</em>//<em>pattern</em>/<em>string</em>}
:
message='The secret code is 12345'
echo "${message//[0-9]/X}"
# prints 'The secret code is XXXXX'
(这记录在 the Bash Reference Manual, §3.5.3 "Shell Parameter Expansion" 中。)
请注意,此功能不是由 POSIX 指定的 — 它是 Bash 的扩展 — 因此并非所有 Unix shell 都实现它。有关相关的 POSIX 文档,请参阅 The Open Group Technical Standard Base Specifications, Issue 7, the Shell & Utilities volume, §2.6.2 "Parameter Expansion" .
关于bash - 将一个子字符串替换为 shell 脚本中的另一个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13210880/