linux下两个文件想合并如何通过shell操作
发布网友
发布时间:2022-05-06 06:53
我来回答
共4个回答
热心网友
时间:2022-06-28 23:08
写在一条命令里有点复杂哦。合并结果保存到文件3中。
awk -F'*' 'NR==FNR{a[FNR]=$1;b[FNR]=$2;c=FNR}NR>FNR{flag=0;for(i=1;i<=c;i++){if($2==b[i]){print a[i] $2;flag=1;break;}}if(flag==0)print}' file2 file1 >file3
思路:
以 * 作为字段分隔符,将每行记录分割为两个字段。
1. 将文件2每行记录的两个字段分别以数组形式保存下来,并记录行数。
2. 对于文件1中的每一行,使用for循环与上一步记录的文件2的字段2数组对比。若相同,则打印文件2的字段1和文件1的字段2。若不同,则打印文件1中的原记录。最后的合并结果保存到文件3中。
试过OK。
热心网友
时间:2022-06-28 23:08
cat 文件1 文件2 >文件3
热心网友
时间:2022-06-28 23:09
cat 文件2 >> 文件1
热心网友
时间:2022-06-28 23:09
2f 正解