在文件中查找一个字符串,并将其匹配替换为另一个文件

时间:2012-06-13 13:56:28

标签: awk solaris ksh replace

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

例如,我希望匹配文件A的每一行中的第一个字段,并将其替换为文件B中的等号。

我不确定如何解决这个问题?是for aw循环还是什么东西?

尝试在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

任何帮助都将不胜感激。

由于

1 个答案:

答案 0 :(得分:1)

使用AWK:

awk '{ if(NR != FNR) { if(map[$1]) $1=map[$1];print } 
     else { split($0,a,"=");map[a[1]]=a[2];}}' FileB FileA