要求:仅grep / cut / join / cat / regex / for / while。
我是shell实用程序的初学者。
我的fileA和fileB包含相等数量的行。我想将fileB的列追加到fileA中。
我正在尝试(cat fileA && cat fileB) > fileC
。但这不能按要求工作。
预期:
fileA:
1
2
3
fileB:
1
2
3
然后fileC应该具有:
1 1
2 2
3 3
答案 0 :(得分:2)
使用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
输出到fileC:
1 1 2 2 3 3
答案 1 :(得分:0)
使用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
$
paste命令仅使用默认的制表符分隔符垂直连接文件。您可以使用-d选项覆盖定界符