在匹配行之前打印第n行,匹配行和匹配行中的第n行

库玛兰

我想在匹配的行,匹配的行和匹配的行的第n行之前打印第n行,其中“ n”大于2。

这是我的数据文件的示例(下面的行号不是数据的一部分,仅用于标识),我要搜索的模式是example.txt文件中的“ blah”

$ cat example.txt 
 1. a
 2. b
 3. c
 4. d
 5. blah
 6. e
 7. f
 8. g
 9. h
 10. blah
 11. i
 12. f
 13. g
 14. h

我希望输出为:

 1. b
 2. blah
 3. g
 4. f
 5. blah
 6. g

请建议任何一支班轮!

芒登

这是一个perl单一代码:

$ perl -ne '$n=3;push @lines,$_; END{for($i=0;$i<=$#lines;$i++){
  if ($lines[$i]=~/blah/){
    print $lines[$i-$n],$lines[$i],$lines[$i+$n]}}
 }' example.txt 
b
blah
g
f
blah
g

要改变周围的行数,改变$n=3;$n=N其中N是所需的号码。要更改匹配的模式,请更改if ($lines[$i]=~/blah/)if ($lines[$i]=~/PATTERN/)

如果数字实际上是文件的一部分,则可以执行以下操作:

$ perl -ne '$n=3;push @lines,$_; END{for($i=0;$i<=$#lines;$i++){
      if ($lines[$i]=~/blah/){
        print $lines[$i-$n],$lines[$i],$lines[$i+$n]}}
     }' example.txt | perl -pne 's/\d+/$./'
1. b
2. blah
3. g
4. f
5. blah
6. g

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从匹配行打印匹配行和第n行

来自分类Dev

在与模式匹配的每行之前仅打印第N行

来自分类Dev

替换匹配模式中的第n行

来自分类Dev

在第n个匹配行之前/之后打印所有内容

来自分类Dev

从与模式匹配的每行中删除第N行

来自分类Dev

熊猫数据框-在匹配行之前/之后获取第N行

来自分类Dev

打印匹配和匹配行

来自分类Dev

提取第n行匹配模式和接下来的N行

来自分类Dev

逐行打印第 n 行

来自分类Dev

如何从图案中打印第n行?

来自分类Dev

如何从图案中打印第n行?

来自分类Dev

从匹配的字符串中删除第n行(在文件中仅出现一次)

来自分类Dev

如何用awk替换一行中的第N个匹配

来自分类Dev

使用Shell脚本在模式匹配后删除或替换文件中的第n行

来自分类Dev

如何在Python中的模式匹配后提取第n行字符串?

来自分类Dev

如何删除第N行之后与“ ABC”匹配的所有行

来自分类Dev

删除sed中匹配的行之前和之后的n行范围?

来自分类Dev

如果一个文件中的行匹配,则从两个文件中删除第N行

来自分类Dev

awk打印模式匹配的行,并且如果pattern1的行具有pattern2,则将pattern1和第n行之后的行打印为单行

来自分类Dev

当第6列或第7列大于90%时打印匹配的行

来自分类Dev

awk,用于位于tsv文件第n行的匹配项(大,未知n)

来自分类Dev

如何使用awk删除第2列和第3列与先前的某些列匹配的行?

来自分类Dev

如果第2列和第3列使用awk匹配,如何删除重复的行?

来自分类Dev

Bash命令匹配n行

来自分类Dev

如果第n个空格后的字母与条件匹配,如何删除一行?

来自分类Dev

使用c &&!-c打印Awk匹配行和后N行

来自分类Dev

在多个文件的匹配行的第3列中搜索数量更大的行

来自分类Dev

Python在匹配之前加入匹配的行

来自分类Dev

在之后打印匹配项和行

Related 相关文章

  1. 1

    从匹配行打印匹配行和第n行

  2. 2

    在与模式匹配的每行之前仅打印第N行

  3. 3

    替换匹配模式中的第n行

  4. 4

    在第n个匹配行之前/之后打印所有内容

  5. 5

    从与模式匹配的每行中删除第N行

  6. 6

    熊猫数据框-在匹配行之前/之后获取第N行

  7. 7

    打印匹配和匹配行

  8. 8

    提取第n行匹配模式和接下来的N行

  9. 9

    逐行打印第 n 行

  10. 10

    如何从图案中打印第n行?

  11. 11

    如何从图案中打印第n行?

  12. 12

    从匹配的字符串中删除第n行(在文件中仅出现一次)

  13. 13

    如何用awk替换一行中的第N个匹配

  14. 14

    使用Shell脚本在模式匹配后删除或替换文件中的第n行

  15. 15

    如何在Python中的模式匹配后提取第n行字符串?

  16. 16

    如何删除第N行之后与“ ABC”匹配的所有行

  17. 17

    删除sed中匹配的行之前和之后的n行范围?

  18. 18

    如果一个文件中的行匹配,则从两个文件中删除第N行

  19. 19

    awk打印模式匹配的行,并且如果pattern1的行具有pattern2,则将pattern1和第n行之后的行打印为单行

  20. 20

    当第6列或第7列大于90%时打印匹配的行

  21. 21

    awk,用于位于tsv文件第n行的匹配项(大,未知n)

  22. 22

    如何使用awk删除第2列和第3列与先前的某些列匹配的行?

  23. 23

    如果第2列和第3列使用awk匹配,如何删除重复的行?

  24. 24

    Bash命令匹配n行

  25. 25

    如果第n个空格后的字母与条件匹配,如何删除一行?

  26. 26

    使用c &&!-c打印Awk匹配行和后N行

  27. 27

    在多个文件的匹配行的第3列中搜索数量更大的行

  28. 28

    Python在匹配之前加入匹配的行

  29. 29

    在之后打印匹配项和行

热门标签

归档