首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在bash中只交换一些行的列

在bash中只交换一些行的列
EN

Stack Overflow用户
提问于 2015-10-12 15:37:37
回答 1查看 60关注 0票数 0

我有一个文件,其列按上半部分的一个逻辑排序,另一个在最低的逻辑上排序,如下

上半场 locus_1 M1 -7.0056323 1 Locus_1 0.004335 1 M3 locus_2 - 3.4194853 1 Locus_2 0.148344 1 M2 locus_3 M5 -2.1111424 1 Locus_3 0.329310 1 M1 下半场 locus_4 -4.2389254 1- Locus_4 0.3219294 1 S2 locus_5 -18.1941031 1 x Locus_5 0.0008329 1 M2 locus_6 13.0201291 1 M4 Locus_6 0.0181229 1-

我想把前半部分印成$1, $3, $4, $2, $5, $6, $7, $8,下半部分只印$0,这样它们就有了相同的顺序。

第二栏的前半部分$2 /$4栏可以包含"-“、"x”、"M1-5“或"S1-5",而3美元上半年/2美元下半年的数字可以是正数或负数。

我想做一些for循环与awk,但我不能成功地做.如果有用的话,我就用cygwin。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-12 17:39:29

Awk内置变量的链接:

http://www.thegeekstuff.com/2010/01/8-powerful-awk-built-in-variables-fs-ofs-rs-ors-nr-nf-filename-fnr/

代码语言:javascript
复制
#!/bin/awk -f
{
    if( NR<4 ){
    print $1 " " $3 " " $4 " " $2 " " $5 " " $6 " " $7 " " $8
    }
    else{
    print $0
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33084991

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档