我有两个文件,其中一个包含类似的块
<record>
line1
line2
line3
#model bla bla bla
</record>
而另一个文件具有完全相同的块数,但没有主题标签注释,即像
<record>
line4
line5
line7
line8
line9
line10
</record>
所以,我想做的是将主题标签从第一个文件的第一个块复制到第二个文件的第一个块,以便我的其他文件也看起来像
<record>
line4
line5
line7
line8
line9
line10
#model bla bla bla
</record>
答案1
如果您希望以相同的顺序使用小代码python
import os
os.rename("second","second~")
a=[]
f=open("first","r")
lines=f.readlines()
b=-1
for line in lines:
if "</record>" in str(line):
if b!=-1:
a.append(lines[b])
else:
print "</record> found in first line"
b=b+1
f.close()
b=0
destination = open("second","w")
source = open("second"+"~","r")
for line in source:
if "</record>" in str(line):
destination.write(a[b])
b=b+1
destination.write(line)
source.close()
destination.close()
注意:第一个是包含标签的文件,第二个是没有标签的文件
答案2
从您的示例来看,这个简单的 awk 命令看起来应该足够了:
awk '/<\/record/{"grep \\^\\# file1"|getline a; print a};1' file2
或者,如果从您忘记添加到问题中的其他答案的评论中公开的进一步要求中看出;-),哈希标签可能会出现在<record>
块之外:
sed '/<record>/,/<\/record>/!d;/^#/!d' < file1 |
awk '/<\/record/{getline a < "-"; print a};1' file2