如何只使用我需要的值编写SSH命令输出

时间:2015-07-13 19:47:50

标签: ssh command output

我正在使用为命令行提供的API创建VPS。该命令的输出附带了几个我不需要的文本。这是我的命令。

变量是预定义的,工作正常。

echo y | /usr/local/bin/CLICMD vm create --hostname=$VMNAME --domain=$srvdomain --cpu 1 --memory 1024 --image $image --datacenter=$dc --billing=hourly -n 100 > /dev/null 1>> /home/logs/createvps.log

当我运行它时,它在createvps.log文件中为我提供了以下输出,

  

此操作会对您的帐户产生费用。继续? [是/否]:id 11232312
  创建2015-06-13T14:43:27-05:00
  guid xxxxxx-r345-4323-8e3f-c8c04e18fad7

从上面的输出中,我只需要将id(11232312)值存储在mysql表中。我知道如何从日志文件中获取值并保存在mysql中。

我的问题是,如何在日志文件中保存该id而不是所有其他值/字符串。

提前谢谢。

1 个答案:

答案 0 :(得分:0)

不确定您的问题究竟是什么,但我想这应该对您有所帮助:

echo y | /usr/local/bin/CLICMD vm create --hostname=$VMNAME \
 --domain=$srvdomain --cpu 1 --memory 1024 --image $image \
 --datacenter=$dc --billing=hourly -n 100 | \
 grep -oE "id [0-9]+$" | grep -Eo "[0-9]+" >> /home/logs/createvps.log

很少注意到你的代码与我的差异:

  • 你对stdout进行了两次重定向,一次重命名为/ dev / null,另一次重定向到你的日志,这相当于只进行一次重定向(写入/ dev / null实际上是NOP)。