我有两个文件,比如A.txt和B.txt。A、 txt有三列,如下所示
0 0 17
0 1 17
0 2 4
0 3 50
0 4 90
....
....
我必须用保存在B.txt中的对应映射值替换第三列值,如下所示
^{pr2}$B.txt中第一列的值与A.txt中第三列的值相同,我需要创建一个新文件(例如C.txt),其前两列与A.txt相同,但第三列包含相应的映射值。 C.txt示例如下所示
0 0 5, 0 1 5, 0 2 1, 0 3 8, 0 4 11号, ..., ... 在
注意
我有40万个文件要做这个操作所以速度很重要。我已经为此编写了一个程序,但运行速度很慢。如果不创建新文件(C.txt),替换可以节省时间,那么解决方案也是可以接受的。在
while read line
do
origPhoneme=`echo $line| cut -d " " -f3`
while read mapLine
do
mapPhone=`echo $mapLine | cut -d " " -f1`
replacementPhone=`echo $mapLine | cut -d " " -f2`
if [ $mapPhone == $origPhoneme ]
then
echo $replacementPhone >> checkFile
break
fi
done < B.txt
done< A.txt
粘贴-d“”A.txt检查文件>;C.txt
通过使用此代码,C.txt文件包含了我不想要的A.txt的第三列
Python(或shell脚本)应该足够快——您的任务主要受I/O速度的限制,而不是处理速度。在
我建议Python这样做:
将
B.txt
读入字典以快速查找:然后处理
^{pr2}$A.txt
,创建C.txt
:相关问题 更多 >
编程相关推荐