【问题标题】:use awk to search for multiple terms but return only the first matching term使用 awk 搜索多个词,但只返回第一个匹配词
【发布时间】:2021-02-08 17:26:38
【问题描述】:

我在以下命令中使用awk 来返回我手机上的应用名称:

aapt dump badging App.apk | awk -F: '/label-uk/ {print $2}'

问题是,我发现其中一些使用不同的标签,例如“label-en-GB”。 所以经过一番研究,我想我应该像这样添加一个管道:

awk -F: '/label-uk|label-en-gb/ {print $2}'

但这会返回包含这两个术语的应用程序的重复项,然后我尝试使用两个管道,如下所示:

awk -F: '/label-uk/ || /label-en-gb/ {print $2}'

两个命令都有效,但都显示重复。

awk 是否可以只返回第一个匹配项而不返回两者?

谢谢!

【问题讨论】:

  • 请在您的问题中添加示例输入(无描述、无图像、无链接)和该示例输入所需的输出(无评论)。
  • Again 您正在寻求帮助以解析命令的输出,但没有向我们显示命令的输出,因此即使它们确实产生了您的输出,您得到的答案也可能完全不合适期待。

标签: awk


【解决方案1】:

通过使用以下,它将在第一次匹配后退出(见附加:exit

... | awk -F: '/label-uk|label-en-gb/ {print $2; exit}'

【讨论】:

    【解决方案2】:

    尝试以下方法:

    aapt dump badging App.apk | awk -F: '/label-uk|label-en-gb/ && fnd !=1 {print $2;fnd=1}'
    

    当我们打印第一个实例时将变量 fnd 设置为 1,然后仅在 fnd 不等于 1 时打印。

    【讨论】:

      猜你喜欢
      • 2018-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 2014-12-26
      相关资源
      最近更新 更多