awk条件查找字符串并进行替换

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xuejinliang/article/details/52366548

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返回的是替换后的字符串。

 

阅读更多

没有更多推荐了,返回首页