【发布时间】:2019-11-01 08:03:26
【问题描述】:
我有两个文件:file1.txt 和 file2.txt。第一个,file1.txt,包含大量信息,并且不定期地显示单词 TIMESTEP。另一方面,第二个文件 file2.txt 仅包含一列整数值。我想解析 file1.txt,找到带有 TIMESTEP 的行,然后用 file2.txt 中的下一行替换 following 行。举个例子:
file1.txt
ITEM: TIMESTEP
54
abc
def
ghi
jkl
ITEM: TIMESTEP
55
horse
cat
dog
ITEM: TIMESTEP
56
tree
ITEM: TIMESTEP
57
house
school
...
file2.txt
150
68
201
202
...
将它们组合起来得到:
ITEM: TIMESTEP
150
abc
def
ghi
jkl
ITEM: TIMESTEP
68
horse
cat
dog
ITEM: TIMESTEP
201
tree
ITEM: TIMESTEP
202
house
school
...
谢谢!
【问题讨论】:
-
看起来像
awk中的一个简短脚本。您可以在 tutorialspoint 找到awk教程。这样做,:传递给awk两个文件。首先将file2.txt加载到一个数组中。然后对于file1.txt中的每一行,如果一行与/TIMESTEP/匹配,则打印该行,getline下一行并打印数组中的一个数字。您将需要另一个数组中的索引 - 在打印数组中的数字后递增它。网上有很多awk教程,这是一种简单的语言,您很快就会学会! -
不,不要下一行,因为这容易出错、难以增强且不必要。见awk.freeshell.org/AllAboutGetline。