bash删除具有保留顺序的键值重复项

苏拉杰·穆拉列达拉(Suraj Muraleedharan)

我有2个文件需要合并并生成第3个文件。请在下面找到示例

文件1

xab=p11
aab=p12
aac=p23
xac=p15
yab=p16

文件2

aab=p17
xac=p25
yyc=p22

我想保留第一个文件的顺序并追加第二个文件。结果应为:

文件3

xab=p11
aab=p17
aac=p23
xac=p25
yab=p16
yyc=p22

我尝试了许多方法,但无法获得一个更简单,易于理解的解决方案。我在StackOverflow中找到的那个正在工作,但是很难理解并向第三方解释。我找到的解决方案是

cat en_us.txt en_US2.txt | tr -s '\n' | awk -F= '!a[$1]{b[++i]=$1} {a[$1]=$0;} END{for(j=1;j<=i;j++){print a[b[j]]}}'

任何人都可以尝试这种方法并获得可读的解决方案(可能是未使用的解决方案awk

埃德·莫顿
$ cat tst.awk
BEGIN { FS=OFS="=" }
{ key=$1; val=$2 }
NR==FNR {
    keys[++numKeys] = key
    key2val[key] = val
    next
}
{
    if ( key in key2val ) {
        val = key2val[key]
        delete key2val[key]
    }
    print key, val
}
END {
    for (keyNr=1; keyNr<=numKeys; keyNr++) {
        key = keys[keyNr]
        if (key in key2val) {
            print key, key2val[key]
        }
    }
}

$ awk -f tst.awk file2 file1
xab=p11
aab=p17
aac=p23
xac=p25
yab=p16
yyc=p22

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何删除.bash_history中的重复项并保留顺序?

来自分类Dev

删除向量中的重复项,但保留顺序

来自分类Dev

删除向量中的重复项,但保留顺序

来自分类Dev

删除多维数组中的重复项并保留原始数组键值

来自分类Dev

删除多维数组中的重复项,并保留原始数组的键值

来自分类Dev

在PHP中,如何删除对象数组中的重复项,其中重复项定义为具有相同值的键值对的子集

来自分类Dev

在unordered_multimap中具有重复键的项是否应按其插入顺序保留?

来自分类Dev

合并具有不同列顺序的csv文件,删除重复项

来自分类Dev

从列表中删除重复项:保留顺序和每个元素的最后一个重复项

来自分类Dev

尝试删除数组中彼此相邻且具有相同值的重复元素(它们必须保留原始顺序)

来自分类Dev

从字典数组中删除键值的重复项

来自分类Dev

TSQL保留有效的重复项并删除无效的重复项

来自分类Dev

删除重复项,仅保留带有特定单词的重复项

来自分类Dev

如何删除所有重复项,只保留该行的 4 个重复项?

来自分类Dev

删除重复的记录,并保留具有较低ID的记录

来自分类Dev

删除重复项,但保留对删除行的引用

来自分类Dev

从列表中删除重复项,但要考虑元素的类型并保留顺序

来自分类Dev

删除具有唯一索引的重复项

来自分类Dev

删除具有旧日期的重复项

来自分类Dev

从SQL结果中删除具有较低日期的重复项

来自分类Dev

删除具有时间序列条件的重复项

来自分类Dev

从SQL结果中删除具有较低日期的重复项

来自分类Dev

具有连续重复项的查询结果已删除

来自分类Dev

删除重复后设置的python保留顺序

来自分类Dev

删除重复项并将具有重复项的副本移至多维数组php的开头

来自分类Dev

删除一列动态数据中具有重复项的行的重复项

来自分类Dev

删除重复项,但保留最完整的迭代

来自分类Dev

从CSV删除重复项,但保留列标题

来自分类Dev

删除重复项但保留 R 中的值

Related 相关文章

  1. 1

    如何删除.bash_history中的重复项并保留顺序?

  2. 2

    删除向量中的重复项,但保留顺序

  3. 3

    删除向量中的重复项,但保留顺序

  4. 4

    删除多维数组中的重复项并保留原始数组键值

  5. 5

    删除多维数组中的重复项,并保留原始数组的键值

  6. 6

    在PHP中,如何删除对象数组中的重复项,其中重复项定义为具有相同值的键值对的子集

  7. 7

    在unordered_multimap中具有重复键的项是否应按其插入顺序保留?

  8. 8

    合并具有不同列顺序的csv文件,删除重复项

  9. 9

    从列表中删除重复项:保留顺序和每个元素的最后一个重复项

  10. 10

    尝试删除数组中彼此相邻且具有相同值的重复元素(它们必须保留原始顺序)

  11. 11

    从字典数组中删除键值的重复项

  12. 12

    TSQL保留有效的重复项并删除无效的重复项

  13. 13

    删除重复项,仅保留带有特定单词的重复项

  14. 14

    如何删除所有重复项,只保留该行的 4 个重复项?

  15. 15

    删除重复的记录,并保留具有较低ID的记录

  16. 16

    删除重复项,但保留对删除行的引用

  17. 17

    从列表中删除重复项,但要考虑元素的类型并保留顺序

  18. 18

    删除具有唯一索引的重复项

  19. 19

    删除具有旧日期的重复项

  20. 20

    从SQL结果中删除具有较低日期的重复项

  21. 21

    删除具有时间序列条件的重复项

  22. 22

    从SQL结果中删除具有较低日期的重复项

  23. 23

    具有连续重复项的查询结果已删除

  24. 24

    删除重复后设置的python保留顺序

  25. 25

    删除重复项并将具有重复项的副本移至多维数组php的开头

  26. 26

    删除一列动态数据中具有重复项的行的重复项

  27. 27

    删除重复项,但保留最完整的迭代

  28. 28

    从CSV删除重复项,但保留列标题

  29. 29

    删除重复项但保留 R 中的值

热门标签

归档