【发布时间】:2018-06-05 14:23:55
【问题描述】:
我得到一个大文件,称为 file.txt,它可能有 20000 行或更多。其中一些行必须从原始文件中删除,并且必须创建一个包含剩余行的新文件,例如 newfile.txt。要删除的行在另一个文件中,例如 index.txt。所以我是这样的:
文件.txt:
line1
line2
...
line19999
line20000
index.txt
11
56
79
...
19856
我一直在尝试使用 sed,试图让它使用索引中的数字来删除这些行,例如:
for i in ${index.txt[@]}
do
sed -i.back '${i}d' file.txt>newfile.txt
done
但是,我收到一条错误消息 ${index.txt[@]}: bad substitution ,我不知道如何解决这个问题。
我也尝试过使用 gawk,但是代码有问题,我认为这与文件缩进制表符有关。如果有人可以提供帮助,我将不胜感激。
【问题讨论】: