1. 程式人生 > >awk條件查詢字串並進行替換

awk條件查詢字串並進行替換

file

222.247.0.0/18,222.247.0.0/17,222.247.0.0/13,222.247.0.0/14

123.46.0.0/19,123.46.0.0/17,123.46.0.0/13,123.46.0.0/14

要求:查詢每行當中最大的那個數字,然後在最前面加上*號。

處理

awk -F',' '{for(i=1;i<=NF;i++)if(m<$i){m=$i;n=i};print gensub($n,"*"$n,1)}' file

解析:

首先要找到最大值,m存取的是最大值,然後n存放的是位置,最後進行替換。注意這裡用的是gensub進行的替換,沒有用gsub或者是sub,因為這兩個返回的是匹配的個數而不是替換後的字串。但是

gensub返回的是替換後的字串。