awk if語句
C語言中用system() 執行shell命令:system("shell命令")主要需要解釋的是awk,awk主體中的語法其實與C類似,只不過其中用到了正則匹配。
格式:awk '' 文件backbone.c就是awk要處理的文件。$0~/^\\/\\*\\*/ :格式:$0 ~ /正則表達式/作用:判斷$0是否匹配正則表達式 ^\\/\\*\\*含義:awk是逐行讀入并處理的,$0代表整行數據; 正則表達式中 ^ 表示一行的開頭,斜杠前要加轉義符以免被認為是正則表達式的定界符,*表示匹配0個或多個前面的字符。
總體來講,就是只處理backbone.c文件中匹配 /^\\/\\*\\*/ 的行與匹配 /\\*\\*\\// 的行中間的內容,并通過print打印到屏幕。
awk里面的if語句可不可以使用管線
可能不成立,你所謂的pipe取得內容是不能用上述方式傳入awk內的。
最簡單的辦法是用NR,FNR全部輸入兩個不同數組,然后用數組進行比較就好了;也可以用getline;以下為例程:awk '{ if(NR==FNR) array1[NR]=$0 else array2[FNR]=$0}END{ for(key1 in array1){ for(key2 in array2){ if(array2[key2] == array1[key1]) print "array2[key2] matched" } }}' file1 file2。