0

我正在尝试用另一个文件中匹配的别名替换一个文件中的字符串。

例如,我想匹配文件 A 每一行中的第一个字段,并将其替换为文件 B 中的内容。

我不知道如何解决这个问题?它会是带有 for 循环的 awk 吗?

试图在 Solaris 中编写脚本...

文件 A

KVHPOJNOTES KVHPOJNOTESSERVER C_POJ_NOTES_C1D63EN
KVHPOJNOTES KVHPOJNOTESSERVER C_POJ_NOTES_C99HXEN
KVHNOTESIDANAPC KVHPOJANAPC C_POJ_NOTES_START_ANAPC
KVHNOTESIDANAPC KVHPOJANAPC C_POJ_NOTES_STOP_ANAPC
KVHNOTESIDANAPD KVHPOJANAPD C_POJ_NOTES_START_ANAPD

文件 B

    KVHNOTESIDAHMLB=ahml02 
    KVHNOTESIDAHUBA=ahub01
    KVHNOTESIDALMLD=alml02
    KVHNOTESIDANAPC=anap02
    KVHNOTESIDANAPD=anap04
    KVHNOTESIDALMLF=alml06

我在想这将是类似的东西

for i in `cat "File A"`
do
grep $1 "File B" | awk ' { print $3 } '
done

任何帮助,将不胜感激。

谢谢

4

1 回答 1

1

使用 AWK:

awk '{ if(NR != FNR) { if(map[$1]) $1=map[$1];print } 
     else { split($0,a,"=");map[a[1]]=a[2];}}' FileB FileA
于 2012-06-14T12:23:29.473 回答