首页 > 系统相关 >linux 中awk命令实现输出匹配字符的上下若干行

linux 中awk命令实现输出匹配字符的上下若干行

时间:2023-06-03 20:34:48浏览次数:37  
标签:字符 test3 txt idx awk linux gene ay1 ay2

 

001、

[root@PC1 test3]# ls
test.txt
[root@PC1 test3]# cat test.txt           ## 测试数据
jjjj    kkk
gene    jjj
dddd    yyy
iiii    ppp
ffff    999
gene    ttt
eeee    mmm
aaaa    nnn
[root@PC1 test3]# awk 'BEGIN{idx = 0} {ay1[NR] = $0; if($1 == "gene") {idx++; ay2[idx] = NR}} END {for (i in ay2)  {print ay1[ay2[i]]; print ay1[ay2[i]+1]}}' test.txt
gene    jjj
dddd    yyy
gene    ttt
eeee    mmm
[root@PC1 test3]# awk 'BEGIN{idx = 0} {ay1[NR] = $0; if($1 == "gene") {idx++; ay2[idx] = NR}} END {for (i in ay2)  {print ay1[ay2[i]-1]; print ay1[ay2[i]]}}' test.txt
jjjj    kkk
gene    jjj
ffff    999
gene    ttt

 

标签:字符,test3,txt,idx,awk,linux,gene,ay1,ay2
From: https://www.cnblogs.com/liujiaxin2018/p/17454587.html

相关文章

  • 前置知识:字符集之UTF-8编码
        ......
  • 前置知识:字符集
       ......
  • B2025 输出字符菱形
    输出字符菱形题目描述用*构造一个对角线长$5$个字符,倾斜放置的菱形。输入格式没有输入要求。输出格式如样例所示。用*构成的菱形。样例#1样例输入#1样例输出#1*************代码#include<bits/stdc++.h>usingnamespacestd;intmain(){p......
  • linux 计算机基础
    1.  GPL、BSD、MIT、Mozilla、Apache和LGPL的区别  GPLGPL许可证的核心:允许任何人观看、修改,并散播程序软件里的原始程序码,条件是如果你要发布修改后的版本就要连源代码一起公布,不允许修改后和衍生的代码做为闭源的商业软件发布和销售。Linux就是采用了GPL协议。......
  • B2005 字符三角形
    题目描述输入两个整数$a,b$,输出它们的和($|a|,|b|\le{10}^9$)。注意Pascal使用integer会爆掉哦!有负数哦!C/C++的main函数必须是int类型,而且C最后要return0。这不仅对洛谷其他题目有效,而且也是NOIP/CSP/NOI比赛的要求!好吧,同志们,我们就从这一题开始,向着大牛......
  • 【Linux中断】Linux系统中断机制简述
    Linux中断Linux中断处理过程1.使能中断,初始化相应的寄存器2.注册中断服务函数,也就是向irqTable数组的指定标号处写入中断服务函数3.中断发生以后进入IRQ中断服务函数,IRQ的中断服务函数在irqTable里面查找具体的中断处理函数,找到以后执行相应的中断处理函数Linux中断处理API函......
  • Python 的字符串内建函数
    Pythoncapitalize()方法将字符串的第一个字母变成大写,其他字母变小写print("第一个内建函数str.capitalize()")s1='a,b's2='A,B's3='a,BCD's4='a,B'#因为a前面有个空格,所以不显示大写print(s1.capitalize())print(s2.capitalize())print(s3.capi......
  • 深剖 Linux 信号量
    目录传统艺能......
  • 字符串进行切割——split() 方法
    Python的split()方法可以对字符串进行切割,得到一个字符串列表。该方法的语法是:pythonstring.split(sep=None,maxsplit=-1)参数说明:-sep:分隔符,默认是所有的空字符,包括空格、换行(\n)、制表符(\t)等。-maxsplit:切割的次数,默认是-1,代表切割所有的分隔符。例如:......
  • linux 正则表达式
    目录一、正则表达式二、元字符三、次数符号四、位置锚定五、实验              一、正则表达式通配符功能是用来处理文件名,而正则表达式是处理文本内容中字符。分类:1. 基本正则表达式2.扩展正则表达式二......