码迷,mamicode.com
首页 > 系统相关 > 详细

awk中匹配shell变量字符

时间:2017-06-13 23:55:50      阅读:379      评论:0      收藏:0      [点我收藏+]

标签:原则   one   cat   round   需要   bsp   ==   apple   for   

遇到问题:
现在有两个脚本,我想
将file1中的内容按file2来匹配
[root@154 home]# cat file1
3-1-1 POTV=1,POTA=0,POTP=2
1-4-76 POTV=1,POTA=0,POTP=1
2-1-2 POTV=1,POTA=1,POTP=1
3-1-4 POTV=1,POTA=1,POTP=2
4-1-5 POTV=1,POTA=1,POTP=2
7-1-2 POTV=1,POTA=1,POTP=2
3-1-10 POTV=1,POTA=1,POTP=2
1-1-1 POTV=1,POTA=2,POTP=0

 

[root@154 home]# cat file2
1-1-1
2-1-2
2-1-3
3-1-4
4-1-5

  

相当于grep的精确匹配,不过是用awk实现的
grep -w ‘1-1-1‘ file1
实现用for in循环取值,赋予变量
 
写了一个替换思路用for in循环将匹配内容变为变量,然后匹配替换
for i in `cat file2`
do
awk  ‘$1==‘‘"‘$i‘"‘‘{print $0}‘ file1 >> urfile
done
 
awk  ‘$1==‘   ‘"‘   $i   ‘"‘    ‘{print $0}‘   file1
这段中单引号是脱义的作用
在awk中精确匹配字符,需要将字符用双引号引用:
即
awk ‘$1=="1-1-1"{print $0}‘ test 
所以对传递参数要用单引号将双引号脱义让awk识别
单引号成对出现是按就近原则来的

  

 
 

awk中匹配shell变量字符

标签:原则   one   cat   round   需要   bsp   ==   apple   for   

原文地址:http://www.cnblogs.com/irockcode/p/7004004.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!