标题: 文本处理_如何实现某列两个数字间相差多少就插入多少空行 [打印本页] 作者: hechao7021 时间: 2019-02-20 10:38 标题: 文本处理_如何实现某列两个数字间相差多少就插入多少空行 a.txt
1 1006 + 0 2 CHH CCC U L L L L L
1 1007 + 0 2 CHH CCT U L L L L L
1 1008 + 0 2 CHH CTA U L L L L L
1 1013 + 0 2 CHH CCC U L L L L L
1 1014 + 0 2 CHH CCT U L L L L L
1 1015 + 0 2 CHH CTA U L L L L L
1 1020 + 0 2 CHH CCC U L L L L L
1 1021 + 0 2 CHH CCT U L L L L L
1 1022 + 0 2 CHH CTA U L L L L L
1 1027 + 0 2 CHH CCC U L L L L L
1 1028 + 0 2 CHH CCT U L L L L L
1 1029 + 1 2 CHH CTA U L L L L U
如果相邻两行第二列的数字不连续,则在这两行之间添加行,添加的行数等于两列数字的差,得到的结果文件:
1 1006 + 0 2 CHH CCC U L L L L L
1 1007 + 0 2 CHH CCT U L L L L L
1 1008 + 0 2 CHH CTA U L L L L L
1009
1010
1011
1012
1 1013 + 0 2 CHH CCC U L L L L L
1 1014 + 0 2 CHH CCT U L L L L L
1 1015 + 0 2 CHH CTA U L L L L L
1016
1017
1018
1019
1 1020 + 0 2 CHH CCC U L L L L L
1 1021 + 0 2 CHH CCT U L L L L L
1 1022 + 0 2 CHH CTA U L L L L L
1023
1024
1025
1026
1 1027 + 0 2 CHH CCC U L L L L L
1 1028 + 0 2 CHH CCT U L L L L L
1 1029 + 1 2 CHH CTA U L L L L U作者: csccyab 时间: 2019-02-20 11:04
大神,请问如果第一列遇到不同的值,则从头开始插入要怎么做呢?我这样改输不出结果:awk 'NR>1{do {first[NR]=$1; gsub(/./," ",first); count++; if ($2!=count&&first[NR]==first[NR-1]) print first" "count} while ($2>count)} NR==1{count=$2; first[NR]=$1; gsub(/./, " ", first)} 1' a.txta.txt
1 1006 + 0 2 CHH CCC U L L L L L
1 1007 + 0 2 CHH CCT U L L L L L
1 1008 + 0 2 CHH CTA U L L L L L
1 1013 + 0 2 CHH CCC U L L L L L
2 1005 + 0 2 CHH CCT U L L L L L
2 1009 + 0 2 CHH CTA U L L L L L
2 1010 + 0 2 CHH CCC U L L L L L
2 1012 + 0 2 CHH CCT U L L L L L
3 1002 + 0 2 CHH CTA U L L L L L
3 1017 + 0 2 CHH CCC U L L L L L
3 1018 + 0 2 CHH CCT U L L L L L
3 1020 + 1 2 CHH CTA U L L L L U
变成:
1 1006 + 0 2 CHH CCC U L L L L L
1 1007 + 0 2 CHH CCT U L L L L L
1 1008 + 0 2 CHH CTA U L L L L L
1009
1010
1011
1012
1 1013 + 0 2 CHH CCC U L L L L L
2 1005 + 0 2 CHH CCT U L L L L L
1006
1007
1008
2 1009 + 0 2 CHH CTA U L L L L L
2 1010 + 0 2 CHH CCC U L L L L L
1011
2 1012 + 0 2 CHH CCT U L L L L L
3 1017 + 0 2 CHH CCC U L L L L L
3 1018 + 0 2 CHH CCT U L L L L L
1019
3 1020 + 1 2 CHH CTA U L L L L U 作者: wh7211 时间: 2019-02-23 12:50 本帖最后由 wh7211 于 2019-02-23 12:54 编辑