awk中匹配shell变量字符
Posted 陈浩然MC
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了awk中匹配shell变量字符相关的知识,希望对你有一定的参考价值。
遇到问题:
现在有两个脚本,我想
将file1中的内容按file2来匹配
[[email protected] 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
[[email protected] 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变量字符的主要内容,如果未能解决你的问题,请参考以下文章