【问题标题】:Unix grep commandUnix grep 命令
【发布时间】:2013-04-26 12:48:20
【问题描述】:

我有一个实用程序脚本,它显示有关已部署的 java 应用程序的信息。这是此脚本的示例输出:

名称:TestAPP

版本:快照

类型:ear、ejb、webservices、web

源码路径:/G/bin/app/TESTAPP_LIVE_1.1.9.1.1.ear

状态:启用

是否可以使用 grep 命令 grep 版本和源路径值?现在我可以使用以下命令执行此操作:

| grep 版本

但是当我只需要一个值时它会输出整个字符串(例如版本:快照)(例如用于进一步脚本命令的快照)

【问题讨论】:

  • grep 版本 |剪切 -d ':' -f 2
  • 发布为答案请喜欢它是否有效
  • 你也可以使用awk:|grep Version|awk '{$print $3}'(我使用$3而不是$2,因为':'和其他单词之间有一个空格)

标签: unix


【解决方案1】:
grep Version | cut -d ':' -f 2 

【讨论】:

    【解决方案2】:

    这是一个纯粹的grep 解决方案。

    -P 选项用于正则表达式模式,-o 选项用于仅检索匹配的内容。

    grep -Po "(?<=^Version : ).*"
    

    这是您将为 Source 做的事情:

    grep -Po "(?<=^Source : ).*"
    

    它使用积极的后视。

    【讨论】:

      【解决方案3】:

      如果您有兴趣,这里有一个使用awk 的解决方案:

      grep Version | awk '{print $3}'
      

      $3 表示打印该行的第三个单词。

      注意:

      1. 仅显示一个单词
      2. 这假设冒号之间有空格(因此版本实际上是第三个​​“单词”)。如果不这样做,请改用$2

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-07-02
        • 2020-03-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-21
        相关资源
        最近更新 更多