ファイルからファイル行を削除する

ファイルからファイル行を削除する

ファイルから削除したい行が約14,000本あります。別のファイルにあります。

$ 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

削除するときに行番号がもつれないように、ファイルの後ろから削除してください。

関連情報