我有 10k 个文件,每个文件有 80k 行,需要比较,并且 - 删除重复的行或将它们替换为“0”。超快,因为我必须做 +1000 次。
对于少于 100 行的文件,以下脚本足够快。现在 tcsh
import csv
foreach file ( `ls -1 *` )
split -l 1 ${file} ${file}.
end
find *.* -type f -print0 | xargs -0 sha512sum | awk '($1 in aa){print $2}(!($1 in aa)){aa[$1]=$2}' | xargs -I {} cp rowzero {}
cat ${file}.* > ${file}.filtered
其中“rowzero”只是一个带有...零的文件。我已经尝试过python,但还没有找到快速的方法。我尝试粘贴它们并做所有快速的事情(awk、sed、上面的命令等),但是当文件超过例如 1000 列时,i/o 会减慢到令人难以置信的水平。我需要帮助,谢谢一百万小时!