这两天出了好多事,心情大起大落。所以第一个计划没有完成,看了一半CISCO安全体系结构,另外还三心二意地看了点SHELL。终于有点明白两个文本之间替换的awk用法了(参看
)。
awk 'NR<=FNR{a[$1]=$2}NR>FNR{if ($6 in a)$8=a[$6];print}' A B
NR代表已读的记录数,FNR代表浏览文件的记录数,所以NR<=FNR{a[$1]=$2}其实就是读取文件A,并把文件A的内容赋予a数组,这里巧妙的将A的第一列内容作为a数组的下标,而第二列内容作为a数组的值,通过这样就读取了A文件的内容。
NR>FNR{if ($6 in a)$8=a[$6];print就是读取B文件,当B文件的第6列的内容在a数组的下标里,则把B文件的第8列的内容用a数组的值替换。通过这样就实现了用A文本的内容替换B文本的内容。
关于两文本的替换还可以参看论坛里mocou的用awk数组处理两个文本的例子:
阅读(2000) | 评论(0) | 转发(0) |