如何直接将一个文件的列附加到另一个文件

How to directly append columns of one file to another file

要求:仅grep/cut/join/cat/regex/for/while.

我是 shell 实用程序的初学者。

我有包含相同行数的文件 A 和文件 B。我想将 fileB 的列附加到 fileA 中。

我正在尝试这个 (cat fileA && cat fileB) > fileC。但它没有按要求工作。

预计:

文件A:

1
2
3

文件 B:

1
2
3

那么 fileC 应该有:

1 1
2 2
3 3

使用 Perl 的一种方式

$ perl -e ' BEGIN { @a=map{chomp;$_} qx(cat fileA); @b=map{chomp;$_} qx(cat fileB); printf("%s %s\n",$a[$_],$b[$_]) for (0..$#a) } '
1 1
2 2
3 3

$

一般使用粘贴命令完成

$ paste -d" " fileA fileB
1 1
2 2
3 3

$

您的意见

$ cat fileA
1
2
3

$ cat fileB
1
2
3

$

粘贴命令只是使用默认的制表符分隔符垂直连接文件。您可以使用 -d 选项

覆盖定界符

与bash:

#!/bin/bash

while true; do
  read -r f1 <&3 || break
  read -r f2 <&4 || break
  echo "$f1 $f2"
done 3<fileA 4<fileB >fileC

输出到文件C:

1 1
2 2
3 3

参见:https://unix.stackexchange.com/a/26604/74329