我正在阅读一个文件,该文件用这一行将第 1 列中的值与第 2 列中的值进行映射替换。
sed `cat switch.map | awk '{print "-e s/"$1"/"$2"/"}'`<<<"`cat file.dat`"
但是,这样的命令并不能取代任何东西。可能是什么原因? 我没有超出 sed 命令的内存限制。
感谢您的帮助。
我怀疑你想要做的是(使用任何 awk 但未经测试):
awk '
NR==FNR { map[$1]=$2; next }
{ for (old in map) gsub(old,map[old]); print }
' switch.map file.dat