我有两个文件:F1,F2为
F1
f1row1
f1row2
..
F2
f2row1
f2row2
..
使用
cat F1 F2 > F3
给出
f1row1
f1row2
..
<end of file1>
f2row1
f2row2
..
<end of file2>
我想创建第三个文件:
F3
f1row1
f2row1
f1row2
f2row2
..
使用 cat 命令执行此操作的任何建议?我搜索了类似的问题,但没有找到。
非常感谢。
答案 0 :(得分:5)
如果您的输入文件包含相同数量的记录
paste -d '\n' F1 F2
答案 1 :(得分:2)
这是Bash的脚本。它可以使用多个文件(在最大打开文件限制内)而不仅仅是2,并且可以使用可变长度的行。
#!/bin/bash
I=3
for F; do
eval "exec $I< \"\$F\""
(( ++I ))
done
for (( ;; )); do
LINES=()
for (( J = 3; J < I; ++J )); do
IFS= read -ru "$J" && LINES+=("$REPLY")
done
[[ ${#LINES[@]} -eq 0 ]] && break
printf '%s\n' "${LINES[@]}"
done
用法:
bash script.sh file1 file2 ...
测试:
bash script.sh <(seq 1 2) <(seq 1 3) <(seq 1 4)
输出:
1
1
1
2
2
2
3
3
4
因此我很想将结果与paste
进行比较:
paste -d '\n' <(seq 1 2) <(seq 1 3)
输出:
1
1
2
2
3