Удалить строку из файла по указанному номеру строки в командной строке bourne

Я делаю сценарий отслеживания назначения в Bourne Shell и должен удалить встречу из текстового файла. Как удалить строку из файла, не оставляя пробела, если у меня есть номер строки? Файл выглядит следующим образом:

1:19:2013:Saturday:16.00:20.30:Poker 1:24:2013:Thursday:11.00:11.45:Project meeting 1:24:2013:Thursday:14.00:15.10:CSS Meeting 

Чтобы удалить строку 5, выполните следующие действия:

 sed -i '5d' file.txt 

Для переменного номера строки:

 sed -i "${line}d" file.txt 

Если опция -i недоступна в вашем вкусе sed, вы можете эмулировать ее с помощью временного файла:

 sed "${line}d" file.txt > file.tmp && mv file.tmp file.txt 

Для удаления по номеру присвоения (линии):

 sed -i '3d' input 

Чтобы удалить по имени:

 sed -i '/:Poker/d' input 

Если опция in-place ( -i ) не работает в вашей системе, вы можете:

 sed '/:Poker/d' input > input.tmp && mv input.tmp input 

Вот пример использования awk:

 lineToDelete=$1 awk "NR != $lineToDelete"