无法从文件中的不同行打印不同的值

时间:2017-04-21 15:24:38

标签: bash awk

我正在尝试从一行中的两行打印值。我使用awk与数组,但不能这样做。我有一个文件:

 1 00 ERROR
124 00 INFO
  1 01 ERROR
 60 01 INFO
  1 02 ERROR
 44 02 INFO
...

并希望得到类似的东西:

00 1 124
01 1 60
02 1 44
...

2 个答案:

答案 0 :(得分:1)

  1. POSIX shell,(例如bashdash等):

    while read a b c && read d e f ; do echo $b $a $d ; done < afile
    
  2. GNU datamash

    datamash -W -g2 unique 1 < afile | tr ',\t' '  '
    
  3. 其中任何一项输出:

    00 1 124
    01 1 60
    02 1 44
    

答案 1 :(得分:0)

试试这个

awk '{s=$2" "$1; getline; print s,$1}' in.txt
  1. 将$ 1和$ 1存储到变量s。
  2. getline将阅读下一行。
  3. 打印结果