我有两个文件,我需要捕获文件的最后一列并附加到其他文件。
文件1
1 2 3
1 2 3
1 2 3
file2的
5 5
5 5
5 5
初步提案
#!/usr/bin/env bash
column=$(awk '{print $(NF)}' $file1)
paste -d',' $file2 < $column
预期结果
file2的
5 5 3
5 5 3
5 5 3
但是,此脚本尚未运行
OBS:我不知道文件中有多少列。我需要更通用的解决方案。
答案 0 :(得分:3)
您可以使用此paste
命令:
paste -d " " file2 <(awk '{print $NF}' file1)
5 5 3
5 5 3
5 5 3
答案 1 :(得分:1)
将file1的最后一列追加到file2:
paste -d " " file2 <(rev file1 | cut -d " " -f 1 | rev)
输出:
5 5 3 5 5 3 5 5 3
答案 2 :(得分:0)
将文件1的第二列粘贴到文件2:
while read line; do
read -u 3 c1 c2 c3;
echo $line $c2;
done < file2 3< file1
答案 3 :(得分:0)
您也可以使用Perl:
$ paste -d ' ' file2.txt <(perl -lne 'print $1 if m/(\S+)\s*$/' file1.txt)
5 5 3
5 5 3
5 5 3
或者grep:
$ paste -d ' ' file2.txt <(grep -Eo '(\S+)\s*$' file1.txt)
5 5 3
5 5 3
5 5 3