- 论坛徽章:
- 0
|
目标追求最高效率
- #原始文本数据如下
- Server04 6 919364946 91688146133167f0 64006106688114f3 1411042252292b0800 316568 2624731 6 ;
- Server04 2 919382418 91688186665165f8 64006116689035f6 1411042250472b0800 1248 1752 1157632026 ;
- Server04 2 919382418 91688186665165f8 64006116689035f6 1411042250472b0800 1248 1752 1157632026 ;
- #对文本行处理,讲第四列读入数组的a[3], 我需要对a[3]调整输出格式得到最终需要的手机号
- a[3]=91688146133167f0
- #处理规则如下
- 前四位去除 后面12位,两两奇偶对调,最后删掉f
- 9168 8<->1 8<->6 6<->6 5<->1 6<->5 f <->8 = 18686615568
- ##下面是王老师和充气老师的答案,仅供参考
- a = line.split()
- d = a[3][5]+a[3][4]+a[3][7]+a[3][6]+a[3][9]+a[3][8]+a[3][11]+a[3][10]+a[3][13]+a[3][12]+a[3][15]
- awk -F '' '{gsub('/[A-Za-z]/',"",$0);for(i=5;i<=NF-1;i+=2)printf"%d%d",$(i+1),$i;}END{print $NF}' 1.txt
- awk -F '' '{for(i=5;i<=(NF-2);i+=2)printf $(i+1)""$i}END{print $NF}' <<< '91688186665165f8'
- for i in range(len(a)) :
- if i >3 and len(a) -2 > i and not i%2:
- b+= a[i+1] + a[i]
复制代码 |
|