我想知道是否可以仅使用 awk 执行以下操作:我正在文件中搜索一些正则表达式 Fand 我想用另一个字符串 (S2) 替换与正则表达式匹配的字符串 (S1)。当然,使用 awk 很容易做到这一点。但是......我的问题是必须从将 S1 映射到 S2 的另一个文件中获取 S2 的值。
例子 :
文件 F:
abcd 168.0.0.1 qsqsjsdfjsjdf
sdfsdffsd
168.0.0.2 sqqsfjqsfsdf
我在另一个文件中的关联表
168.0.0.1 foo
168.0.0.2 bar
我想得到:
这个结果:
abcd foo qsqsjsdfjsjdf
sdfsdffsd
bar sqqsfjqsfsdf
感谢帮助 !
编辑:如果我的输入文件有点不同,像这样(IP地址前没有空格):
文件 F:
abcd168.0.0.1 qsqsjsdfjsjdf
sdfsdffsd
168.0.0.2 sqqsfjqsfsdf
我不能在关联数组中使用 $1、$2 变量和搜索。我尝试了类似的方法(基于 birei 命题),但没有奏效:
FNR < NR {
sub(/[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+/, assoc [ & ] );
print
}
有没有办法在关联数组中搜索匹配的字符串(assoc[ & ] 似乎无效)?