Bash 附加两个文件不同的总记录

Bash 附加两个文件不同的总记录,bash,shell,unix,sh,Bash,Shell,Unix,Sh,我有两个文件。文件1包含7列和100条记录。文件2包含2列和1条记录。 我想把文件2中的第2列放在文件1的最后一列 我尝试用paste-d和pr-mtr,它只是在第一条记录中添加新的列 以下是预期的过程 files1.txt aaaa|bbb|ccc|dddd|eee|fff|ggg aawe|bab|fcc|dcvd|ere|fasdf|g12g aaas|bcb|dcc|ddsd|efe|ff|g2 ..... aaa2|bb3|ccd|ddsd|eef|ffd|gag abc|def

我有两个文件。文件1包含7列和100条记录。文件2包含2列和1条记录。 我想把文件2中的第2列放在文件1的最后一列

我尝试用paste-d和pr-mtr,它只是在第一条记录中添加新的列

以下是预期的过程

files1.txt

aaaa|bbb|ccc|dddd|eee|fff|ggg
aawe|bab|fcc|dcvd|ere|fasdf|g12g
aaas|bcb|dcc|ddsd|efe|ff|g2
.....
aaa2|bb3|ccd|ddsd|eef|ffd|gag
abc|def
aaaa|bbb|ccc|dddd|eee|fff|ggg|def
aawe|bab|fcc|dcvd|ere|fasdf|g12g|def
aaas|bcb|dcc|ddsd|efe|ff|g2|def
.....
aaa2|bb3|ccd|ddsd|eef|ffd|gag|def
files2.txt

aaaa|bbb|ccc|dddd|eee|fff|ggg
aawe|bab|fcc|dcvd|ere|fasdf|g12g
aaas|bcb|dcc|ddsd|efe|ff|g2
.....
aaa2|bb3|ccd|ddsd|eef|ffd|gag
abc|def
aaaa|bbb|ccc|dddd|eee|fff|ggg|def
aawe|bab|fcc|dcvd|ere|fasdf|g12g|def
aaas|bcb|dcc|ddsd|efe|ff|g2|def
.....
aaa2|bb3|ccd|ddsd|eef|ffd|gag|def
输出

files3.txt

aaaa|bbb|ccc|dddd|eee|fff|ggg
aawe|bab|fcc|dcvd|ere|fasdf|g12g
aaas|bcb|dcc|ddsd|efe|ff|g2
.....
aaa2|bb3|ccd|ddsd|eef|ffd|gag
abc|def
aaaa|bbb|ccc|dddd|eee|fff|ggg|def
aawe|bab|fcc|dcvd|ere|fasdf|g12g|def
aaas|bcb|dcc|ddsd|efe|ff|g2|def
.....
aaa2|bb3|ccd|ddsd|eef|ffd|gag|def
使用
awk

awk 'BEGIN{FS=OFS="|"} NR==FNR{x=$2;next} $(NF+1)=x' file2 file1 > file3
使用
awk

awk 'BEGIN{FS=OFS="|"} NR==FNR{x=$2;next} $(NF+1)=x' file2 file1 > file3

sed
似乎是一个显而易见的选择

IFS='|' read x add < file2.txt
sed "s/$/|$add/" file1.txt > file3.txt
IFS='|'read x addfile3.txt

sed
似乎是一个显而易见的选择

IFS='|' read x add < file2.txt
sed "s/$/|$add/" file1.txt > file3.txt
IFS='|'read x addfile3.txt

欢迎,祝你有愉快的一天欢迎,祝你有愉快的一天