我有一个大的txt文件(long_list)和另一个txt文件,列出了我想从中删除的行(short_list)。
#long list
seq 10000 > long_list
#rows to delete
for i in `seq 30`; do echo $(($RANDOM % 10000)); done > short_list
我找到了一种方法来为几个特定的行执行此操作:
sed -e '648d;649d' long_list
但我有一个要删除的行列表,这些行长达数百行,我想从文件中输入。有人可以帮忙吗?
答案 0 :(得分:0)
使用awk
:
awk 'NR==FNR{a[$1];next}!(FNR in a)' short_list long_list
如果当前文件FNR
的记录数不属于数组a
填充short_list
的内容