在Bash中交替合并两个文件的内容

时间:2018-12-15 15:37:08

标签: bash shell awk

我有两个文件:

文件1:

  0: void apple.<init>() 
  1: void apple.main(java.lang.String[])

文件2:

DEX CODE:
      0x0000: 7010 0300 0000            | invoke-direct {v0}, void 
      java.lang.Object.<init>() // method@3
      0x0003: 0e00                      | return-void
DEX CODE:
      0x0000: 1200                      | const/4 v0, #+0
      0x0001: 1301 6400                 | const/16 v1, #+100
      0x0003: 2313 0a00                 | new-array v3, v1, int[] // type@10

如何在bash脚本中交替合并内容:

0: void apple.<init>() 
DEX CODE:
      0x0000: 7010 0300 0000            | invoke-direct {v0}, void 
      java.lang.Object.<init>() // method@3
      0x0003: 0e00                      | return-void

1: void apple.main(java.lang.String[])
DEX CODE:
      0x0000: 1200                      | const/4 v0, #+0
      0x0001: 1301 6400                 | const/16 v1, #+100
      0x0003: 2313 0a00                 | new-array v3, v1, int[] // type@10

谢谢。

1 个答案:

答案 0 :(得分:2)

请您尝试以下。

awk 'FNR==NR{a[FNR]=$0;next} /^DEX/{$0=a[++count] ORS $0} 1' Input_file1  Input_file2

如果要将输出保存到Input_file中的任何一个中,请使用以下命令。

awk 'FNR==NR{a[FNR]=$0;next} /^DEX/{$0=a[++count] ORS $0} 1'  Input_file1 Input_file2 > temp_file  && mv temp_file  Input_file2