试图执行" sed"命令但是找不到"命令"错误

时间:2017-02-17 00:46:42

标签: bash shell sed scripting

我试图执行以下命令:

`sed 's/49%100%/49%!100%/' /etc/nagios/objects/services.cfg`

但我收到此错误

-bash: ###############################################################################: command not found

如果我尝试在没有后退滴答的情况下运行它,该命令将起作用。

我尝试过以下方法:

`sed 's/49%100%/49%!100%/' /etc/nagios/objects/services.cfg` 2>&1

`sed 's/49%100%/49%!100%/' /etc/nagios/objects/services.cfg`> /dev/null

但它没有用。

1 个答案:

答案 0 :(得分:6)

您不需要返回标记或$()来调用此处sed,因为您的要求是不将sed的输出解释为命令。

如果您打算修改/etc/nagios/objects/services.cfg,可以这样做:

sed 's/49%100%/49%!100%/' /etc/nagios/objects/services.cfg > /etc/nagios/objects/services.cfg.new

或者,进行就地编辑(当您完全确定sed表达式正确时):

sed -i 's/49%100%/49%!100%/' /etc/nagios/objects/services.cfg

在像macOS这样的BSD系统上,sed -i需要一个参数。命令是:

sed -i '' 's/49%100%/49%!100%/' /etc/nagios/objects/services.cfg

有关返回刻度及其更现代的表单$()

的更多信息,请参阅这些帖子