首页 > 解决方案 > 如何就地编辑 curl 输出?

问题描述

我正在为 bash 脚本卷曲命令以在我的 linux 系统上运行安装,然后将其通过管道传输到 bash 控制台。

curl -G website/bashscript.sh | sudo bash

但是我从 curl 收到的命令添加了一个

echo "Rebooting"
reboot

在最后。

这个 curl 和 sudo 命令在我自己编写的 bash 脚本中,用于自动化安装过程。

如何从此文本中删除 echo 和 reboot 命令并将其通过管道传输到 bash?我宁愿不将其保存到文件中,对其进行编辑,然后将其传递给 bash,因为我真的不想在之后删除文本文件。

谢谢!

标签: linuxbashcurl

解决方案


删除最后一行,如果是单词reboot

sed '${/^reboot$/d}'

sed语法:选择最后$一行。{开始一个块。/^reboot$/选择仅包含单词的行reboot^匹配开头并$匹配行尾)。d在匹配的情况下删除该行。}关闭块。

删除最后一行,如果是短语echo "Rebooting"

sed '${/^echo "Rebooting"$/d}'

全部一起:

curl -G website/bashscript.sh |
sed '${/^reboot$/d}' |
sed '${/^echo "Rebooting"$/d}' |
sudo bash

推荐阅读