Chinaunix

标题: 如何对一个文件中多个关键词进行替换 [打印本页]

作者: chenjiali1    时间: 2014-06-07 14:26
标题: 如何对一个文件中多个关键词进行替换
大家好,我有两个文件,其中一个A文件内容如下:
FBGN0024244, FBGN0004893, FBGN0004892
FBGN0015754, FBGN0001291, FBGN0002989

另外一个文件B有两列,其中一列是这些关键词,另外一列是它们所对应的序号。
FBGN0024244 1
FBGN0015754 2
FBGN0004893 3
FBGN0002989 4
FBGN0004892 5
FBGN0001291 6

我想处理之后,将 A中的词全部用B中的第二列代替,结果如下:
1,3,5
2,6,4

请问如何实现,谢谢大家,不只这两行,还有很多,只是拿两行举例。

作者: WilliBhamlll    时间: 2014-06-07 14:51
  1. awk -F'[, ]+' 'NR==FNR{a[$1]=$2;next}{for(i=1;i<NF;i++)printf a[$i]",";print a[$NF]}' B A
复制代码

作者: q1208c    时间: 2014-06-07 15:51
如果文件的行数太多, 可能处理的过程要复杂些, 因为要考虑内存的消耗.

A文件中的一行上有多个关键字, 可否把它拆成每行只有一个? 这样可能会简单些.
作者: yestreenstars    时间: 2014-06-08 00:35
  1. awk -F'[, ]+' -vOFS=, 'NR==FNR{a[$1]=$2;next}{for(i=0;i++<NF;)$i=a[$i]}1' B A
复制代码





欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2