【问题标题】:how can i cut off the strings from an output in Bash shell?如何从 Bash shell 的输出中截断字符串?
【发布时间】:2021-02-03 08:07:15
【问题描述】:

我运行的命令如下:

rpm -qi setup | grep Install

命令的输出:

Install Date: Do 30 Jul 2020 15:55:28 CEST

我想进一步编辑此输出,以便仅保留: 30 Jul 2020

其余的输出不显示。

什么是 bash 中最好的编辑方法,我可以简单地得到这个最终结果?

【问题讨论】:

  • ... 如果安装失败怎么办?您会知道日期,但您不会知道安装尚未完成。那么,有什么用呢? :-)

标签: linux bash awk sed cut


【解决方案1】:

像这样使用grep -Po-P = 使用 Perl 正则表达式引擎,-o = 只打印匹配项,而不是整行):

echo '**Install Date: Do 30 Jul 2020 15:55:28 CEST**' | grep -Po '\d{1,2}\s+\w{3}\s+\d{4}'

您也可以像这样使用cut-d' ' = 空格分割,-f4-6 = 打印字段 4 到 6):

echo '**Install Date: Do 30 Jul 2020 15:55:28 CEST**' | cut -d' ' -f4-6

输出:

30 Jul 2020

【讨论】:

    【解决方案2】:

    您可以只使用rpmqueryformat 和bashprintf:

    $ printf '%(%d %b %Y)T\n' $(rpm -q --queryformat '%{INSTALLTIME}\n' setup)
    29 Apr 2020
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-04
      • 1970-01-01
      • 2011-08-05
      • 2011-02-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多