从bash中另一个文件中指定的索引中删除文件中的每一行

时间:2018-04-10 17:54:10

标签: bash sed lines

所以我在一个名为indexes.txt的文件中有一个索引列表。我想读取该文件中的每个索引,并从另一个名为input.txt的文件中删除相应的行。到目前为止,我有这个实现工作:

while read -r index
do
    sed -i "${index}d" $input.txt
done < "indexes.txt"

但是,这种实现根本不能很好地扩展。我的index.txt文件有12500行,input.txt有大约300,000行。我想删除每一行并每次保存input.txt都需要花费很多时间(每个索引需要几秒钟)。有没有办法更有效地做到这一点?

编辑:对不起,忘了提及indices.txt中的索引是唯一的,严格减少整数。

0 个答案:

没有答案