如何顺序读取2个文件中的1行?
如何一次读取 2 个文件 1 行?假设我的 file1 和 file2 包含以下内容:
file1:
line1.a
line2.a
line3.a
file2:
line1.b
line2.b
line3.b
我如何获得这样的输出 -
line1.a
line1.b
line2.a
line2.b
line3.a
line3.b
...
...
How do I read from 2 files 1 line at a time? Say if I have file1 and file2 with following content:
file1:
line1.a
line2.a
line3.a
file2:
line1.b
line2.b
line3.b
How do I get output like this -
line1.a
line1.b
line2.a
line2.b
line3.a
line3.b
...
...
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
您可以通过纯
bash
方式或使用名为paste
的工具来完成此操作:您的文件:
使用文件描述符的纯 Bash 解决方案:
< ;&3 告诉 bash 读取描述符 3 处的文件。您会知道 Stdin、Stdout 和 Stderr 使用 0、1 和 2 描述符。所以我们应该避免使用它们。另外,9 之后的描述符由 bash 内部使用,因此您可以使用 3 到 9 中的任何一个。
粘贴实用程序:
You can do it either via a pure
bash
way or by using a tool calledpaste
:Your files:
Pure Bash Solution using file descriptors:
<&3 tells bash to read a file at descriptor 3. You would be aware that 0, 1 and 2 descriptors are used by Stdin, Stdout and Stderr. So we should avoid using those. Also, descriptors after 9 are used by bash internally so you can use any one from 3 to 9.
Paste Utility:
这可能对你有用(尽管是 GNU sed):
This might work for you (GNU sed though):
C#:
C#:
以防万一它可能对某人有帮助。实现这一目标的方法有多种,这里有两个简单的例子。
头 -n; |如果需要,可以使用 tail -n1
代替sed
。Sleep
是为了更方便阅读而设置的。结果:
结果:
Just in case it might be helpful to somebody. Different ways to achieve this, here are 2 simple examples.
Head -n<N> | tail -n1
can be used instead ofsed
if needed.Sleep
is put for more convenient reading.Result:
Result: