2012-06-13 91 views
0

我試圖用一個文件中的字符串替換另一個文件中的匹配別名。在文件中查找一個字符串並將其替換爲另一個文件

例如,我想第一場匹配文件中的每一行,並用它等於在文件B.

我不知道如何解決,可替代它?它會與for循環或什麼awk?

試圖在Solaris中的腳本這個...

文件

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 

任何幫助,將不勝感激。

感謝

+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 
相關問題