基本上我有一个带有许多空行的文本文件。我们称其为 time.txt ,该文件的一部分如下所示:
1 5 20
2 5 12
1 6 3
2 6 4
1 10 30
2 10 21
1 11 27
2 12 8
1 11 34
2 12 20
1 10 30
2 10 21
现在,我有另一个文件,名为location.txt,其中包含与time.txt中空行数量相同的行数。它看起来像这样:
110 -7 5.000 66
110 -7 5.000 99
110 -7 5.000 60
我的要求很简单:我只想用location.txt的每一行填充time.txt中的空白行,以达到预期的结果:
110 -7 5.000 66
1 5 20
2 5 12
1 6 3
2 6 4
110 -7 5.000 99
1 10 30
2 10 21
1 11 27
2 12 8
1 11 34
2 12 20
110 -7 5.000 60
1 10 30
2 10 21
我的解决方法是逐行阅读 location.txt,在循环内将每行存储到变量中,然后使用 awk 检测 time.txt 中的空行并用存储的循环变量替换。我的代码如下:
time="time.txt"
location="location.txt"
while read -r lines_locs; do
awk '!NF{$0=$lines_locs}1' $time
done < "$location"
但是,这仅仅在我的屏幕上打印出了 time.txt,没有进行任何替换。另外,我打印的行数比预期的行数要多。我确定我忽略了某些东西,如果有人能指出来,我会很高兴的。