awk中匹配shell變量字符
[[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]
相當於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變量字符