【发布时间】:2018-02-14 14:54:47
【问题描述】:
我想用另一个主文件中的查找值替换文件中的值
我目前正在使用以下命令来做到这一点
awk 'FNR==NR { array[$1]=$2; next } { for (i in array) gsub(i, array[i]) }1' map.txt test1.txt
猫地图.txt
非空
猫测试.txt
字符集拉丁语不区分大小写不为空
结果:
CHARACTER SET LATIN NOT CASESPECIFIC NULL NULL
替换单个单词效果很好。
但是当我在引号内给出多个单词时说
猫地图.txt
'非空''空'
预期输出:
CHARACTER SET LATIN NOT CASESPECIFIC NULL
如果我必须替换多个组合的单词,它就不起作用了。
如有任何帮助,我们将不胜感激。
提前致谢。
【问题讨论】:
-
必须引用吗? map.txt 中的替换集是否都相等?这意味着有两个词作为一个词的索引。
-
edit 您的问题是使用
{}按钮正确格式化您的输入和输出,以便我们可以复制/粘贴来测试。
标签: bash shell awk sed scripting