下面是一个使用Bash脚本和awk命令的例子,从一个带有查找表的文件中读取键值对并将其应用于另一个文件,以便查找并替换第二个文件中的字符串。
old_value_1 new_value_1 old_value_2 new_value_2 old_value_3 new_value_3
column1 old_value_1 column3 column1 old_value_2 column3 column1 old_value_3 column3
#!/bin/bash
declare -A lookup while read old new; do lookup["$old"]=$new done < lookup.txt
awk -F'\t' -v lookup="${lookup[*]}" 'BEGIN { split(lookup, arr, " ") for(i in arr) { split(arr[i], pair, "=") map[pair[1]]=pair[2] } } { for(i=1;i<=NF;i++) { if($i in map) { $i=map[$i] } } print }' data.txt