Удалить строку из файла с указанным номером строки в Bourne shell [дубликат]



На этот вопрос уже есть ответ здесь:



Я создаю скрипт отслеживания встреч в 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
638   3  

3 ответов:

Чтобы удалить строку 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"

Comments

    Ничего не найдено.