当前位置: 首页 > 面试题库 >

通过主键与bash合并文件

江德润
2023-03-14
问题内容

我有两个文件,其中IP地址为主键。文件二只有一个包含不同信息的子集。我想使用bash将第二列添加到第一个文件。

文件1:

192.168.1.1;hosta;aabbccddeef0
192.168.1.2;hostb;aabbccddeef1
192.168.1.3;hostc;aabbccddeef2

文件2:

192.168.1.2;differentHostname;

cat file2 | cut -d\; -f1; do grep -w $addr file1 ...无法使用for
addr的方法,因为无法从file2访问主机名。

有任何想法吗?


问题答案:

这是做什么的join

$ join -a1 -t';' <(sort file1) <(sort file2)    
192.168.1.1;hosta;aabbccddeef0
192.168.1.2;hostb,aabbccddeef1;differentHostname;
192.168.1.3;hostc,aabbccddeef2

注意:join要求文件按排序顺序。

您可以使用以下-o选项指定输出顺序:

$ join -a1 -t';' -o 1.1 1.2 2.2 1.3 <(sort file1) <(sort file2)
192.168.1.1;hosta;;aabbccddeef0
192.168.1.2;hostb;differentHostname;aabbccddeef1
192.168.1.3;hostc;;aabbccddeef2


 类似资料:
  • 问题内容: 有没有一种方法可以将两个主键合并为一个,然后级联更新所有受影响的关系?这是场景: 客户(idCustomer int PK,公司varchar(50)等) CustomerContacts(idCustomerContact int PK,idCustomer int FK,名称varchar(50)等) CustomerNotes(idCustomerNote int PK,idCu

  • 问题内容: 尝试查看是否有任何JavaScript库功能可以合并两个json对象的特定键的值 使用$ .extend和$ .merge给出以下结果 我正在寻找的是 问题答案: 您想深入扩展

  • 问题内容: 我有以下两个玩具字典 我想得到一个唯一的字典,在其中我将第二个字典值堆叠在第一个字典之后,并放在相同的方括号内。 我尝试了以下代码 但是我获得的输出在每个键的列表中有两个列表,即 而我想获得 如何使用一行或两行代码来实现? 问题答案: 您几乎拥有了它,而是使用了附加两个列表的方法:

  • 问题内容: 我正在设计一个数据库,该数据库将用于存储来自许多不同来源的数据。我存储的实例由原始来源分配了唯一的ID。我存储的每个实例都应包含有关其来源的信息,以及与此来源相关联的ID。 作为示例,请考虑说明该问题的下表: 请注意,尽管每个来源的唯一,但有可能在不同来源中找到相同的来源。 我对关系数据库有一个不错的了解,但是与专家甚至是经验丰富的用户都相去甚远。我在此设计中面临的问题是应该用作主键。

  • 问题内容: 您能否建议我在发布者和订阅者之间合并期间自动解决主键冲突的方法。看来Sql Server并没有开箱即用:(。 冲突查看器向我显示了下一条消息: 无法将“ publisher_server”上的行插入传播到“ subscriber_server”。此失败可能是由于违反约束引起的。违反主键约束’PK_ PartPlan FD9D7F927172C0B5’。无法在对象“ _table_nam

  • 我正在使用JPA(Hibernate)并试图用childs和复合键持久化整个新实体,但当持久化childs时,我在键中得到了null。表结构: 映射: