根据某些条件合并两个文本文件

时间:2017-09-16 07:52:10

标签: bash unix sed

File1:每条记录以“〜”开头,数字如下&以同样的结尾。每条记录在起始行和结束行之间有八行,其中一些为“_”。

REPLACE OR IGNORE

File2:它包含每条记录的默认值,如下所示。它只包含一条记录。应将File1中的每条记录与File2进行比较,并将所有“_”替换为File2中与该位置相关的默认值。

     ~1
     001
     COMON
     _
     98273497335
     _
     _
     003
     +7346542347
     ~1
     ~2
     001
     .
     .
     ~2.........so on 

OUTPUT文件:File1中的'_'应替换为记录对应位置的默认值File2。

    ~
    001
    COMON
    0000000000
    0
    00
    00000
    +0.0
    +0000000000
    ~

1 个答案:

答案 0 :(得分:1)

您可以使用awk执行此操作:

import PyPDF2
pdf = PyPDF2.PdfFileReader("a.pdf","rb")
p = pdf.getPage(1)

w_in_user_space_units = p.mediaBox.getWidth()
h_in_user_space_units = p.mediaBox.getHeight()

# 1 user space unit is 1/72 inch
# 1/72 inch ~ 0.352 millimeters

w = float(p.mediaBox.getWidth()) * 0.352
h = float(p.mediaBox.getHeight()) * 0.352

awk 'NR == FNR { line[NR] = $1; next } { print ($1 == "_" ? line[(FNR - 1) % 10 + 1] : $1) }' file2 file1 定位第一个文件。使用行号NR == FNR作为密钥,从file2读取并保存10行。

第二个块用于第二个文件,因为第一个块中有NR。如果第一个字段是" _",则使用该行的替换值,next生成序列(FNR - 1) % 10 + 1等,因此使用查找数组中的相应行。