首页 > 代码库 > awk中匹配shell变量字符
awk中匹配shell变量字符
遇到问题:
现在有两个脚本,我想
将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变量字符
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。