linux shell实现将每隔一个空格的两列并排为一列

1、测试数据

root@PC1:/home/test# ls
outcome.ped
root@PC1:/home/test# cat outcome.ped     ## 测试数据, 将每隔一个空格的两列并排为一列
G G C C G G G G G A A A G G G C
G G G C G G G G G G A A A G C C
G G C C G G G G G G A A A G G C
G G C C G G G G G G A A G G G G
G G C C G G G G G G A A A G G C
G G C C G G G G G G A A A A C C
G G C C G G A G A A A A G G C C
G G C C G G A G A A A A G G C C
root@PC1:/home/test# cp outcome.ped outcome.ped_bak   ## 备份数据
root@PC1:/home/test# ls
outcome.ped  outcome.ped_bak

 

2、sed实现

root@PC1:/home/test# ls
outcome.ped  outcome.ped_bak
root@PC1:/home/test# cat outcome.ped    ## 测试数据
G G C C G G G G G A A A G G G C
G G G C G G G G G G A A A G C C
G G C C G G G G G G A A A G G C
G G C C G G G G G G A A G G G G
G G C C G G G G G G A A A G G C
G G C C G G G G G G A A A A C C
G G C C G G A G A A A A G G C C
G G C C G G A G A A A A G G C C
root@PC1:/home/test# let num=$(head -n 1 outcome.ped | awk '{print NF}')/2   ## 统计列数并确定需要替换的列数
root@PC1:/home/test# echo $num
8
root@PC1:/home/test# for i in `seq $num`; do sed "s/ //$i" outcome.ped -i; done   ## 利用sed替换
root@PC1:/home/test# ls
outcome.ped  outcome.ped_bak
root@PC1:/home/test# cat outcome.ped   ## 查看替换效果
GG CC GG GG GA AA GG GC
GG GC GG GG GG AA AG CC
GG CC GG GG GG AA AG GC
GG CC GG GG GG AA GG GG
GG CC GG GG GG AA AG GC
GG CC GG GG GG AA AA CC
GG CC GG AG AA AA GG CC
GG CC GG AG AA AA GG CC

 

3、awk 实现

root@PC1:/home/test# ls
outcome.ped
root@PC1:/home/test# cat outcome.ped
G G C C G G G G G A A A G G G C
G G G C G G G G G G A A A G C C
G G C C G G G G G G A A A G G C
G G C C G G G G G G A A G G G G
G G C C G G G G G G A A A G G C
G G C C G G G G G G A A A A C C
G G C C G G A G A A A A G G C C
G G C C G G A G A A A A G G C C
root@PC1:/home/test# cp outcome.ped outcome.ped_bak   ## 备份数据
root@PC1:/home/test# ls
outcome.ped  outcome.ped_bak
root@PC1:/home/test# awk '{for(i = 1; i <= NF; i++) if(i % 2 != 0) {printf("%s", $i)} else {printf("%s ", $i)}; printf("\n")}' outcome.ped ## 利用awk列循环判断实现
GG CC GG GG GA AA GG GC
GG GC GG GG GG AA AG CC
GG CC GG GG GG AA AG GC
GG CC GG GG GG AA GG GG
GG CC GG GG GG AA AG GC
GG CC GG GG GG AA AA CC
GG CC GG AG AA AA GG CC
GG CC GG AG AA AA GG CC

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。