我可以使用什么正则表达式或命令来修剪此输出?

时间:2017-09-02 16:08:22

标签: bash ubuntu

我正在尝试捕获$ variable中的特定输出,用于我的远程服务器配置,它将一个接一个地运行命令。

在安装了pm2 node package的ubuntu环境中,它附带了一个命令,它将输出我需要运行的东西。

命令1:

PM2 = $(pm2 startup systemd)

当我运行echo $ PM2时输出这个字符串:

[PM2] Init System found: systemd [PM2] You have to run this command as root. Execute the following command: sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u username --hp /home/username

我需要将这个确切的输出捕获为$ var:

sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u username --hp /home/username

所以我可以让我的cloud init配置文件在下一个命令中运行它。

命令2:

$PM2

如何让$ PM2只有

的输出值
sudo env PATH=$PATH:/usr/bin /usr/lib/node_modules/pm2/bin/pm2 startup systemd -u username --hp /home/username

1 个答案:

答案 0 :(得分:1)

这可能有所帮助:

pm2response=$(pm2 startup systemd) # Use lower case for user defined variables
${pm2response#*Execute the following command:} # Shell param expansion

但是这假设你的字符串中有短语Execute the following command:,虽然我猜我是正确的。祝你好运!

注意:有关SHELL参数替换的更多信息[ here ]