1. 程式人生 > >awk中匹配shell變量字符

awk中匹配shell變量字符

bsp grep 引號 for 成對 成對出現 back pre 參數

遇到問題: 現在有兩個腳本,我想 將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變量字符