在shell脚本中区分两个文件

时间:2015-04-29 11:23:16

标签: file shell parsing

假设我们有两个名为file1和file2的文件。

File1:    
a=b    
c=d    
e=f

File2:   
a=p  
c=o  
e=f  
g=h  
i=j  

这里file2具有与file1相同的键和不同的值。除了它自己的一些额外的键值对。

比较两个文件密钥,将file2值替换为基于密钥匹配的file1值。保留file2中的新条目。

所以,我的最终输出应该是:

File2: 
a=b  
c=d  
e=f  
g=h  
i=j  

提前致谢。

1 个答案:

答案 0 :(得分:0)

不使用脚本的最快方法是使用名为“meld”的工具  我可以给出解决问题的一种方法(尽管不是最好的)

1.从第一个文件逐行读取

2.split基于“=”表达式

3.将两个变量存储为键和值  创建所有键值对的数组

4.从第二个文件中读取并重复该过程

比较两个数组并保存不在第一个数组中的值

在这种特定情况下,您可以在shell中使用“cut”命令来选择字段。 我个人更喜欢Perl脚本来执行这样的文件操作:)