系统相关
首页 > 系统相关> > Linux三剑客 之 awk学习与应用

Linux三剑客 之 awk学习与应用

作者:互联网

最近在调gps模块,要把代码里打印的NMEA的msg给抓出来,单独存在一个文件里,素来听闻awk的强大,这次打算借这个机会学习一波:

也就是说,大概是从下面这样的log中,过滤出$开头的所有行,并删除每一行前面的无关内容:

2019年 02月 28日 星期四 12:02:04 CST
2019年 03月 03日 星期日 22:39:29 CST
hello sed
hello sed
test : djdhdhk 
test '$'NMEA: djdhdhk 
test \'$\'NMEA: djdhdhk 
$fjdshfkjhdjkf
896874h32gkjdsgfdsjf
dfsdu09we7r8923ycdsioyv-92yhgfihdlvhd0f9vu
$NmEA: ssfhgskvhdsk 
dfjskhvudisb
hjksghfgjdhojfoh $NMEA: hudkgciugs98yc0sudjlds

要想完成这件事,需要掌握以下知识:

 

 

 然后就是具体操作了:

awk '{for(i=1;i<NF;i++) {if($i ~ /\$/){ printf(" %s FIND %s %s\n",NR, $i, $(i+1)) } } }'  log.txt

输出以下内容:

 

 如果不想要行号和提示,则只需

awk '{for(i=1;i<NF;i++) {if($i ~ /\$/){ printf(" %s %s\n",  $i, $(i+1)) } } }'  log.txt

 

标签:02,sed,awk,NMEA,Linux,test,djdhdhk,三剑客
来源: https://www.cnblogs.com/Arnold-Zhang/p/16631219.html