gpt4 book ai didi

bash - 如何依次从 2 个文件中读取 1 行?

转载 作者:行者123 更新时间:2023-11-29 08:48:46 24 4
gpt4 key购买 nike

如何一次从 2 个文件读取 1 行?假设我有包含以下内容的 file1 和 file2:

文件1:

line1.a    
line2.a
line3.a

文件2:

line1.b   
line2.b
line3.b

我如何获得这样的输出 -

line1.a   
line1.b
line2.a
line2.b
line3.a
line3.b
...
...

最佳答案

您可以通过纯 bash 方式或使用名为 paste 的工具来完成此操作:

您的文件:

[jaypal:~/Temp] cat file1
line1.a
line2.a
line3.a
line4.a

[jaypal:~/Temp] cat file2
line1.b
line2.b
line3.b
line4.b

使用文件描述符的纯 Bash 解决方案:

<&3 告诉 bash 读取描述符 3 处的文件。您会知道 Stdin、Stdout 和 Stderr 使用 0、1 和 2 描述符。所以我们应该避免使用那些。此外,9 之后的描述符由 bash 内部使用,因此您可以使用 3 到 9 中的任何一个。

[jaypal:~/Temp] while read -r a && read -r b <&3; do
> echo -e "$a\n$b";
> done < file1 3<file2
line1.a
line1.b
line2.a
line2.b
line3.a
line3.b
line4.a
line4.b

粘贴工具:

[jaypal:~/Temp] paste -d"\n" file1 file2
line1.a
line1.b
line2.a
line2.b
line3.a
line3.b
line4.a
line4.b

关于bash - 如何依次从 2 个文件中读取 1 行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8550385/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com