【问题标题】:Replace output of a command using sed使用 sed 替换命令的输出
【发布时间】:2021-03-11 21:51:06
【问题描述】:

在 bash 终端中运行自定义的 kubectl 命令时,它会在 vim 编辑器中打开一个 yaml 文件,但我正在尝试替换字符串而无需打开编辑器。 (命令是 bash 脚本的一部分。)

kubectl deploy apps edit namespace | sed  -i "s/version-tag:2.4.0.9/version-tag:2.4.0.10/"

Error:

sed: no input files
Vim: Warning: Output is not to a terminal


    kubectl deploy apps edit namespace | sed  -i -e "s/version-tag:2.4.0.9/version-tag:2.4.0.10/"

Error:
sed: -e expression #1, char 1: unknown command: `-' and no replacement happens.

我通过参考论坛上的建议尝试了其他选项,但没有运气..我哪里错了。

【问题讨论】:

  • 删除-i,用于内联文件替换。
  • 它会打开一个我不想要的 vim 编辑器,因为我必须将此命令作为 shell 脚本的一部分运行 :(
  • this thread怎么样

标签: bash sed


【解决方案1】:

删除 sed 命令中的 -i。这应该有效:

kubectl deploy apps edit namespace | sed "s/version-tag:2.4.0.9/version-tag:2.4.0.10/"

【讨论】:

  • 忘了添加,也试过了 - 但它会打开一个我不想要的 vim 编辑器,因为我必须将此命令作为 shell 脚本的一部分运行。
猜你喜欢
  • 2022-01-10
  • 1970-01-01
  • 1970-01-01
  • 2018-09-16
  • 2013-10-11
  • 1970-01-01
  • 2018-01-11
  • 2020-09-22
  • 1970-01-01
相关资源
最近更新 更多