awk怎么提取某一关键词后的内容

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk怎么提取某一关键词后的内容相关的知识,希望对你有一定的参考价值。

echo "关键词后的内容"|awk ' if(match($0,"关键词"))
print substr($0,RSTART+RLENGTH) '
match函数查找关键词后,自动设置的两个变量RSTART表示关键词开始位置,RLENGTH表示关键词长度,用substr从关键词后的一个位置取出内容即可
AWK是一种处理文本文件的语言,是一个强大的文本分析工具。

本文将使用命令awk将具有某个关键字的段落提取出来。
AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。这种编程及数据操作语言(其名称得自于它的创始人阿尔佛雷德·艾侯、彼得·温伯格和布莱恩·柯林汉姓氏的首个字母)的最大功能取决于一个人所拥有的知识。
参考技术A echo "关键词后的内容"|awk ' if(match($0,"关键词"))
print substr($0,RSTART+RLENGTH) '
match函数查找关键词后,自动设置的两个变量RSTART表示关键词开始位置,RLENGTH表示关键词长度,用substr从关键词后的一个位置取出内容即可本回答被提问者采纳
参考技术B awk -F"keyword" '/keyword/print $2' file

perl单行命令[03]-awk

perl单行命令[03]-awk

摘要

提取文档中某一列的数据,这是awk的强项,perl吸收并简化了awk,让awk变得更加简洁高效。}{ 循环终止符。

文本格式

1.txt

C 1 2 3 SER
N 2 3 4 PRO
O 1 1 1 CYS
F 1 2 3 ALA
Cl 2 3 6 ILE
Br 4 4 7 GLN

提取第5列数据

perl -lane 'print $F[4]' 1.txt

开关分析
  • -l 让print变成say的效果,自动在后面添加换行符

  • -a 打开awk的开关,同awk一样默认分隔符号是空格符号,可以通过-F开关自定义分隔符号,默认数组@F用来存放拆分后的元素

  • -n 循环读取文本中的行

  • -e 运行单行命令

分别对2,3,4列求和

perl -ane '$sum[0]+=$F[1];$sum[1]+=$F[2];$F[2]+=$F[3];}{print "$sum[0] $sum[1] $sum[1] "'

  • }{ 循环终止符号

借debug模式体验交互模式
  • perl -de 0

  • perl -de 1

  • perl -de 'print "run in linux "'

  • perl -de "print qw(run in window)"

D:\Program Files\CCDC1.8\lib>perl -de "print qw(hh)"

Loading DB routines from perl5db.pl version 1.44

Editor support available.

Enter h or 'h h' for help, or 'perldoc perldebug' for more help.

main::(-e:1):   print qw(hh)

  DB<1> @a=(1..100)

  DB<2> map{$sum+=$_}@a

  DB<3> print $sum

5050


以上是关于awk怎么提取某一关键词后的内容的主要内容,如果未能解决你的问题,请参考以下文章

利用awk命令提取其中一列包括特定字符的所有行怎么办

awk - 提取包含某个关键字的段落

在EXCEL中,如何根据关键字批量提取单元格所在行的内容?

利用awk命令进行统计

awk 按照指定行名顺序提取数据

excel找到关键词后提取本行所有内容