从文件中删除文件的行

从文件中删除文件的行

我有大约 14k 行要从文件中删除。它们在另一个文件中:

$ cat delete.lineno.txt
12d
23d
24d
78d
...
..

etc.

我需要从 my.file.txt 文件中删除第 12、23、24、78 行等。我如何使用 来实现这个sed

答案1

您可以使用-f选项sed从文件中读取命令:

sed -f delete.lineno.txt < my.file.txt

答案2

不要使用sed- 它不是适合这项工作的工具。使用ex, 的超集ed

tac delete.lineno.txt > cmds
echo 'w!' >> cmds
echo 'q!' >> cmds
ex -s file < cmds

从文件后面删除,以避免删除时弄乱行编号。

相关内容