使用sed或awk从具有特定单词的行中提取第n行?

 兴哥 发布于 2023-01-12 15:02

终端上的hg标签输出:

tip                              596:bb834c42599f
P_SONY_1004.21.15                595:db10157b1515
P_PHILIPS_1000.21.2              590:67b7e71f76b4
P_SONY_1004.21.2                 539:2b50e157e217
P_SONY_10015.21.2                533:15160fyafd88
P_creative.21.1                  512:cdac14a00df4
P_SONY_1004.15.5                 500:21affdf1bbfd
P_SONY_1002.15.5                 466:a7bad21505ca
P_SONY_1002.15.15                424:efbe741500bb
P_creative.15.2                  420:415c415a65fa
P_SONY_1004.15.1                 414:24f1ab415c15
P_PHILIPS_1000.15.1              412:5d151556c288
P_SONY_1002.15.1                 410:bf1f5af64ebb
P_SONY_1002.15.1                 390:152e0f4ec815
P_creative.8.2                   370:ecdc64f8a4b4
P_creative.8.1                   350:5b8e81bd725a
P_creative.7.5                   343:221d5c15efa6
P_creative.6.1                   222:62115db1e015

从这个输出我必须从包含"创意"字的行中提取第二行

我试过这个:

hg tags | awk '/creative/{print $1;}'

它的输出:

P_creative.21.1
P_creative.15.2
P_creative.8.2
P_creative.8.1
P_creative.7.5
P_creative.6.1

但我只想把它作为输出:P_creative.15.2

如何更改命令以将"P_creative.15.2"作为输出,如何在shell脚本中使用它?

我也可以从中提取"15.2"吗?

1 个回答
  • 你可以随意c得到c匹配:

    awk -v c=2 '/creative/{count++;}count==c{print $0;exit}' file
    

    (以上将打印整行)

    获得第一个字:

    awk -v c=2 '/creative/{count++;}count==c{print $1;exit}' file
    

    2023-01-12 15:05 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有