替换从文件中读取替换的值列表

问题描述 投票:0回答:1

我正在阅读一个文件,该文件用这一行将第 1 列中的值与第 2 列中的值进行映射替换。

sed `cat switch.map | awk '{print "-e s/"$1"/"$2"/"}'`<<<"`cat file.dat`"

但是,这样的命令并不能取代任何东西。可能是什么原因? 我没有超出 sed 命令的内存限制。

感谢您的帮助。

bash awk sed paste cat
1个回答
0
投票

我怀疑你想要做的是(使用任何 awk 但未经测试):

awk '
    NR==FNR { map[$1]=$2; next }
    { for (old in map) gsub(old,map[old]); print }
' switch.map file.dat
© www.soinside.com 2019 - 2024. All rights reserved.