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
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
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