linux下两个文件想合并如何通过shell操作

文件1内容:d4615935ce91128e5d2774c47cae3527*./usr/bin/camdad95ad574540d831d4ec66220a3ef24e... 文件1内容:
d4615935ce91128e5d2774c47cae3527 *./usr/bin/camd
ad95ad574540d831d4ec66220a3ef24e *./usr/lib/libdxo.so
b5a344d58858b78557ab1db9b7dc0033 *./usr/lib/libisphal.so
8df9b47791fa1e2cb885ff60b3e7abab *./etc/camd/smia_ed.cfg
632d6d1bc2f39b136785c805aae38b46 *./etc/camd/vx6852-once-0.00.bin
4a7526c92d27ecceb8e4e59d4ce5bbcf *./etc/camd/vx6852-once-0.10.bin
4cac5f922e93b2cfd1b73de4cc966f21 *./etc/camd/vx6852-once-1.20.bin
cfb82c102a92d53669b6998f37d93491 *./etc/camd/vx6852-once-2.21.bin
b6d9af45ec832b9bdf300e86687e72bc *./etc/camd/vx6852-load-firmware
69d70ac95ccd4b85fde41905ec528cfa *./etc/event.d/vx6852
ce3b3e8810280e01fc621c1c6130726a *./etc/event.d/camd

文件2内容:
5656535ce91128e5d2774c47cae3527 *./usr/bin/camd
565656fgftryyttw45456566566656edd*./usr/lib/libisphal.so

如何以文件2为准合并到文件1中呢?
不是为了合并。
是有不同的,合并的同时还要替换的。
展开
 我来答
百度网友5311d79
2010-11-19 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3198万
展开全部
写在一条命令里有点复杂哦。合并结果保存到文件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。
大正宙师泓影3844
2010-11-19
知道答主
回答量:4
采纳率:0%
帮助的人:6088
展开全部
cat 文件1 文件2 >文件3
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yexicheng
2010-11-19 · TA获得超过1.2万个赞
知道大有可为答主
回答量:8857
采纳率:69%
帮助的人:7054万
展开全部
cat 文件2 >> 文件1
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
beyondwolf
2010-11-19 · TA获得超过197个赞
知道小有建树答主
回答量:290
采纳率:0%
帮助的人:264万
展开全部
2f 正解
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式