【问题标题】:How do i arranged by reading two text files using bash?我如何通过使用 bash 读取两个文本文件来安排?
【发布时间】:2019-11-02 03:05:45
【问题描述】:

我有两个文本文件文本

猫 A.txt

10,1,1,"ABC"
10,1,2,"ABC"
10,1,3,"baba"
10,2,1,"asd"
10,2,2,"dkkd"

猫 B.txt

10,1,2,"S1"
10,2,1,"S2"
10,2,2,"S3"

我希望文件 B.txt 的内容应该出现在匹配的 A.txt 上方 这里我需要比较用逗号分隔的三个数字。说 A.txt 的 (10,1,2) 和 B.txt 的 (10,1,2) 如果他们发现相等,那么它添加到上面 如何使用 bash 获取此输出并保存到另一个文件

10,1,1,"ABC"
10,1,2,"S1"
10,1,2,"ABC"
10,1,3,"baba"
10,2,1,"S2"
10,2,1,"asd"
10,2,2,"S3"
10,2,2,"dkkd"

【问题讨论】:

  • 10,1,2,"S1" 10,1,2,"ABC"为什么S1在ABC前面?不是 ABC -> S1
  • 我已经编辑了我的帖子@KamilCuk

标签: bash


【解决方案1】:

只需使用前三个字段对文件进行排序。因为您更喜欢 A.txt 前面来自 B.txt 的行,所以我使用 -s, --stable 选项禁用最后排序排序,希望 sort 选择它读取的第一行。所以通过将第一个文件指定为B.txt,我希望它将B.txt放在前面。

sort -s -t, -k1,3 B.txt A.txt

将输出:

10,1,1,"ABC"
10,1,2,"S1"
10,1,2,"ABC"
10,1,3,"baba"
10,2,1,"S2"
10,2,1,"asd"
10,2,2,"S3"
10,2,2,"dkkd"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 2020-12-24
    • 1970-01-01
    • 2016-03-10
    • 2013-10-15
    • 2021-07-27
    相关资源
    最近更新 更多