在bash中按列绑定两个文件

时间:2014-06-09 09:25:45

标签: bash cbind

当我有两个文件,如文件A

012
658
458
895
235

和文件B

1
2
3
4
5

怎么可能加入bash?输出shoudl只是

1012
2658
3458
4895
5235

实际上我只想按列绑定,例如在R(cbind)中。

4 个答案:

答案 0 :(得分:6)

假设两个文件中的列长度相等,您可以使用paste命令:

paste --delimiters='' fileB fileA

paste命令的默认分隔符是TAB。所以''确保没有分隔符。

答案 1 :(得分:2)

喜欢这样:

paste -d'\0' B A

或者,如果你喜欢awk

awk 'FNR==NR{A[FNR]=$0;next} {print $0,A[FNR]}' OFS='' A B

答案 2 :(得分:1)

使用纯Bash而没有外部命令:

while read -u 3 A && read -u 4 B; do
    echo "${B}${A}"
done 3< File_A.txt 4< File_B.txt

答案 3 :(得分:0)

grep "run complete" *.err | awk -F: '{print $1}'|sort > a
ls ../bam/*bam | grep -v temp | awk -F[/_] '{print $3".err"}' | sort > b 
diff <(grep "run complete" *.err | awk -F: '{print $1}'|sort) <(ls ../bam/*bam | grep -v temp | awk -F[/_] '{print $3".err"}' )
paste a b