我有一个文件,其列的排序在上半部分有一个逻辑,另一个在最低部分,如
上半场
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”,“M [1-5]”或“S [1-5]”,而数字上半场3美元/下半场2美元可以是正面的还是负面的。
我想用for
进行一些awk
循环,但我无法成功...我使用cygwin,如果它有用。
答案 0 :(得分:1)
Awk内置变量的链接:
#!/bin/awk -f
{
if( NR<4 ){
print $1 " " $3 " " $4 " " $2 " " $5 " " $6 " " $7 " " $8
}
else{
print $0
}
}