【问题标题】:How to substitute a particular string from a variable using sed? [closed]如何使用 sed 从变量中替换特定字符串? [关闭]
【发布时间】:2021-02-20 08:55:22
【问题描述】:

我只是想用一个变量的值替换一个特定的字符串,并使用 sed 用替换的字符串更新该变量

例如。 spath="$(which git)"

现在我需要更新变量 spath 的值,方法是将字符串“git”替换为字符串“c”,在 which 表达式已评估之后。 假设如果 which git 最初评估为 /usr/bin/git ,那么 spath 应该最终评估为 /usr/bin /c sed 字符串替换后

【问题讨论】:

标签: regex linux bash sed


【解决方案1】:

这个呢:

spath="$(which git)"
spath=$(echo $spath | sed 's/git$/c/')

【讨论】:

  • 这会将所有出现的字符串“git”替换为“c”——不仅仅是最后一个。更安全的sed 命令是sed 's/git$/c/'
【解决方案2】:

通过使用内置的bash 字符串操作功能,您可以在不使用sed 等外部实用程序的情况下获得相同的结果。

$ spath="/usr/bin/git"
$ spath=${spath/%git/c}
$ echo $spath
/usr/bin/c
$

【讨论】:

  • 有没有办法将此语法与管道一起使用?
  • 是的。编写一个处理 STDIN 并将结果文本输出到 STDOUT 的 shell 脚本。
猜你喜欢
  • 1970-01-01
  • 2021-07-04
  • 2021-09-28
  • 2020-02-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-29
相关资源
最近更新 更多