Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何将一个文件的列直接附加到另一个文件_Bash_Awk_Cut_Cat - Fatal编程技术网

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

Bash 如何将一个文件的列直接附加到另一个文件,bash,awk,cut,cat,Bash,Awk,Cut,Cat,要求:仅限grep/cut/join/cat/regex/for/while 我是shell实用程序的初学者 我有包含相同行数的fileA和fileB。我想将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

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

我是shell实用程序的初学者

我有包含相同行数的fileA和fileB。我想将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

$
“粘贴”命令仅使用默认的制表符分隔符垂直连接文件。您可以用bash使用-d选项覆盖分隔符:

#!/bin/bash

while true; do
  read -r f1 <&3 || break
  read -r f2 <&4 || break
  echo "$f1 $f2"
done 3<fileA 4<fileB >fileC
#/bin/bash
虽然真实;做

阅读-r f1可能的重复请在问题中添加示例输入和该示例输入所需的输出。请阅读操作系统的使用要求,我是否可以知道将其限制为仅限于这些命令的原因Sos is linux(ubuntu 18.04)。我必须遵守给定的要求。我建议在注释中粘贴到OP,但OP TENDED NOT allowed:)这是我需要的。谢谢,我知道你为什么添加了
| | break
而没有
break
无限循环(
为true
)永远不会结束。因此,当文件A或文件B被读取到末尾时,循环结束。为什么不在读取-r f1时

1 1
2 2
3 3