awk处理列
时间:2011-04-26
来源:互联网
如何把如下文本
172.20.0.9 114.80.92.95 114.80.92.85 114.80.92.39 E4 114.80.92.9
172.20.0.9 114.80.92.39 114.80.92.85 114.80.92.95
转换为:
172.20.0.9 114.80.92.95 114.80.92.85 114.80.92.39 E4 114.80.92.9
172.20.0.9 114.80.92.95 114.80.92.85 114.80.92.39
即第一行和第二行的每列比较,当相同的时候,将他们合并为同一列
之前搞过,忘记咋写了,faint !
作者: expert1 发布时间: 2011-04-26
http://scmbob.org/luma_s_puzzle.html
作者: xiaopan3322 发布时间: 2011-04-26
看错了。。。
作者: where27 发布时间: 2011-04-26
- awk 'NR==1{for(i=1;i<=NF;i++) {printf $i" ";a[i]=$i;x=NF};print ""}NR==2{for(j=1;j<=x;j++)for(m=1;m<=NF;m++) if($m==a[j]) {printf $m" "}} ' file
作者: yinyuemi 发布时间: 2011-04-26
如果找不到对应的,怎么办?
例如:
172.20.0.9 114.80.92.95 114.80.92.85 114.80.92.39 E4 114.80.92.9
172.20.0.9 114.80.92.85 114.80.92.86 114.80.92.95
作者: ly5066113 发布时间: 2011-04-26
:mrgreen:
呵呵,了解了,貌似写的复杂了些。
作者: expert1 发布时间: 2011-04-26
看下人家的疑问,是不是都能找到对应的列?
作者: expert1 发布时间: 2011-04-26
awk 'NR==1{for(i=1;i<=NF;i++)a=$i}NR===2{for(i in a){for(j=1;j<=NF;j++)if($j==a)print a}}
前提是,第二行的列一定在第一行中能找到。
作者: expert1 发布时间: 2011-04-26
更复杂的,明天有时间我再优化下
- echo '172.20.0.9 114.80.92.95 114.80.92.85 114.80.92.39 E4 114.80.92.9
- 172.20.0.9 114.80.92.39 114.80.92.85 114.80.92.95 x y z' | awk 'NR==1{for(i=1;i<=NF;i++) {printf $i" ";a[i]=$i;x=NF;b[$i]=1};print ""}NR==2{for(j=1;j<=x;j++)for(m=1;m<=NF;m++) {if($m==a[j]) {printf $m" "} else {if(b[$m]!=1){c[$m]}}};for(n in c) printf n" "}'
- 172.20.0.9 114.80.92.95 114.80.92.85 114.80.92.39 E4 114.80.92.9
- 172.20.0.9 114.80.92.95 114.80.92.85 114.80.92.39 x y z
作者: yinyuemi 发布时间: 2011-04-26
第一行的长度肯定小于第二行的长度
两行中有相同的值时放在同一列,即同一个域,如果第一行的值,在第二行中没有,则在第二行中用空格代替,如果第二行的值在第一行中没有,则在与第一行匹配完以后,加到末尾
eg:
IN:
a b e f g
c b a g f k y
OUT:
a b e f g
a b f g k y
IN:
a b c d e f
h i j k a b c
OUT:
a b c d e f
a b c h i j k
作者: expert1 发布时间: 2011-04-26
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28