ファイルから削除したい行が約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
削除するときに行番号がもつれないように、ファイルの後ろから削除してください。