我有两个文件:
文本1:
1 element
2 element
3 element
4 element
文本2:
line1
line2
line3
line4
line5
line6
line7
我需要得到这个结果:
1 element at line1
2 element at line2
3 element at line3
4 element at line4
1 element at line5
2 element at line6
3 element at line7
如果我在文本 1 中添加五行,预期结果如下:
1 element at line1
2 element at line2
3 element at line3
4 element at line4
5 element at line5
1 element at line6
2 element at line7
答案1
paste -d '' <(while cat text1; do :; done) <(yes ' at ') text2 | head -n "$(<text2 wc -l)"
while cat text1; do :; done
重复 的内容text1
。yes ' at '
生成行,每行at
(带有相邻的空格)。paste
将两行合并,并text2
加上一个空分隔符。
paste
一直工作到全部输入文件已耗尽。while …
并且可以无休止地流式传输,即使已耗尽yes
,它们也会继续。因此,我们需要接受与已完全相同的行数。这就是所做的。paste
file2
text2
head
该方法假设这两个文件都是静态的。