1

我有一个文件,其中所有行都相同,但第一行有一组我想用于所有其他字段的常量。

File.txt(制表符分隔)

ABC 1 2 3 4

国防军

全球健康指数

我希望结果符合

预期结果.txt

1 2A B 3 C 4

1 2D E 3 F 4

1 2G H 3 我 4

我拥有的当前代码只会正确处理第一行然后退出

实际结果.txt

1 2A B 3 C 4

代码

#!/bin/sh
Begin{FS="\t";OFS="\t"}
{
      if(NR=1){
           FirstConstant=$4;
           SecondConstant=$5;
           ThirdConstant=$6;
           FourthConstant=$7;
       }
       if($1){
            Combo=SecondConstant $1;
        }
        print FirstConstant, Combo, $2, ThirdConstant, $3, FourthConstant;
  }
4

1 回答 1

4

awk

# space separatered output
$ awk 'NR==1{a=$4;b=$5;c=$6;d=$7}{print a,b$1,$2,c,$3,d}' file
1 2A B 3 C 4
1 2D E 3 F 4
1 2G H 3 I 4

# tab separatered output
$ awk 'NR==1{a=$4;b=$5;c=$6;d=$7}{print a,b$1,$2,c,$3,d}' OFS='\t' file
1   2A  B   3   C   4
1   2D  E   3   F   4
1   2G  H   3   I   4
于 2013-07-11T18:31:38.247 回答