我有以下格式的 csv 文件:
23:56:00,5,1,7,99,100,101
23:56:30,5,1,7,98,199,191
23:57:00,6,1,6,99,99,98
23:57:30,5,2,6,97,99,199
...
以及以下格式的地图文件:
1:10
2:12
3:30
4:aa
5:16
6:11
7:bb
我想要完成的是将第一个 csv 文件中第 2,3 和 4 列中的字段替换为它们在映射文件中映射到的值。
例如在上述情况下,我想要的最终输出是:
23:56:00,16,10,bb,99,100,101
23:56:30,16,10,bb,98,199,191
23:57:00,11,10,11,99,99,98
23:57:30,16,12,11,97,99,199
最好的方法是什么?我试图找出一种使用 awk/sed 的方法,但我不确定如何访问 awk 中的多个文件,以及这是否是最好的方法。因为它是一个大文件,所以会有很多重复,所以我不认为每次检查映射都是正确的方法。
有没有办法将映射存储到 shell 脚本内的哈希表中,然后使用哈希映射替换?