日期:2014-05-16  浏览次数:20664 次

[AWK]大文件替换
请教各位大牛
我有两个文件,一个1.txt如下
!Record 1
START_MSG   14:15:00:000;
TYPE        Record Response;
Size        14;
Ladd        FF1111;
RIC_Name    CFG;
Status      0;
Temp_No     2;
RTL         0;
END_FIC_Data;
END_MSG;
!
一个包含10million的字符如下2.txt
ABC
DEF
GHI
需要把1.txt文件中RIC_Name    CFG;这一行的CFG分别替换成ABC, DEF, GHI,该怎么做呢?
!Record 1
START_MSG   14:15:00:000;
TYPE        Record Response;
Size        14;
Ladd        FF1111;
RIC_Name    ABC;
Status      0;
Temp_No     2;
RTL         0;
END_FIC_Data;
END_MSG;
!
START_MSG   14:15:00:000;
TYPE        Record Response;
Size        14;
Ladd        FF1111;
RIC_Name    DEF;
Status      0;
Temp_No     2;
RTL         0;
END_FIC_Data;
END_MSG;
!
START_MSG   14:15:00:000;
TYPE        Record Response;
Size        14;
Ladd        FF1111;
RIC_Name    GHI;
Status      0;
Temp_No     2;
RTL         0;
END_FIC_Data;
END_MSG;
!
写了一个awk脚本
BEGIN {
FS = " ";
while(getline<"1.txt">0)
{
print $1;
nvar = $1;
}
}

{

if($1 == "RIC_Name")
{
$2 = "   "nvar";";
}
print ;
}
但是每次只能把2.txt里面最后一行字符替换进去.
大虾们帮我看看该怎么改呢??