2017-08-03 48 views
0

我正在写一个脚本,它利用了盐CLI(SaltStack)以及通用的命令行参数来制作一个简单的基于HTML的表概述我们所有的服务器的硬件规格和软件版本。如何去除grep的输出?

因为它的声音,但我唯一的挑战是剥我的命令输出,使他们能够很好地在表中呈现(例如一个字/号码,而不是全输出),它是那样简单。那我还没有有效地剥离

我的最新的挑战是一个简单的“DF -Ph的输出。到目前为止,我已经得到了下来,这样的:

'df -Ph /' 

我的输出:

Filesystem      Size Used Avail Use% Mounted on 
/dev/mapper/vhfhuffu    50G 8.0G 39G 18%/

我会把它想,只显示可用于每个服务器,我无法找到一个可靠的方法这是永远的Unix服务器。

+0

什么也正是问题的工作的唯一的事?在上面的总结可能的不同文件系统的例子中提取'39G'?这和grep有什么关系? –

+0

因为我需要找到找到每台机器的“可用”总和的方法,所以我在15台服务器上运行此命令。 @SergeBallesta – jto

回答

0

我结束了这个因去我需要通过盐运行从脚本命令需要'周围的CMD .RUN

DF -Ph/| grep/| AWK'‘“‘{打印$ 4}’”’”

丑陋,但它是在这样的情况下利基

0

tailcut应该是足够的位置:

df -Ph/| tail +2 | cut -f4 -w 

应该给你的根文件系统的文件系统的大小。

+0

-h明显的原因-P格式@Serg – jto

+0

@jto:我的坏。我忘了控制实际的Linux手册页,-P选项与我的BSD系统不同...... –

0

另一个简单的方法是结合tail -n 1得到最后一行,并通过grep '{print $4}'. This will extract the 39G`值,它听起来像你想要的,例如,

$ df -Ph/| tail -n 1 | awk '{print $4}' 
39G 

如果你想总和一些其他的号码,只是让我知道。

+0

我最终使用了类似于此方法的东西:df -Ph/| grep/| awk'{print $ 4}',我只是努力运行这个命令,因为我必须通过salt-cli运行它,即salt'*'cmd.run'df -Ph/| grep/| awk'{print $ 4}'',它不喜欢print命令结束的事实以及salt-cli语法,我怎么能解决这个问题? @David C. Rankin – jto

+0

我很好奇。这是我听说过的第一个'salt-cli'。它是我没有听说过的一些新shell,还是更像PowerShell窗口的东西? –

+0

这是一个远程执行和配置管理工具,其具有一个命令行功能很像AWS-CLI – jto

0

您可以使用--output选项提取所需的列值:

​​