我有两个文件,file1.txt
和 file2.txt
。每个都有相同数量的行,但 file1.txt
中的一些行是空的。这在并行显示两个文件的内容时最容易看出:
file1.txt file2.txt
cat bear
fish eagle
spider leopard
snail
catfish rainbow trout
snake
koala
rabbit fish
我需要将这些文件组合在一起,这样 file1.txt
中的空行就会被 file2.txt 中的行(相同行号)中的数据填充
。 file3.txt
中的结果如下所示:
cat
fish
spider
snail
catfish
snake
koala
rabbit
到目前为止,我能做的最好的事情是创建一个 while read -r line
循环,创建一个计数器来计算 while 循环已经循环了多少次,然后使用 if 条件来检查如果$line
为空,则使用cut
根据计数器上的数字从file2.txt
中获取行号。这种方法看起来效率很低。
- 有时
file2.txt
可能包含一些空行。如果file1.txt
有一个空行并且file2.txt
在同一位置也有一个空行,结果是file3.txt< 中的一个空行
。
如何用另一个文件中的相应行填充一个文件中的空行?
最佳答案
paste file1.txt file2.txt | awk -F '\t' '$1 { print $1 ; next } { print $2 }'
关于bash - 如何在 BASH 中用另一个文件中的相应行填充一个文件中的空行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22110377/