LINUX.ORG.RU

Удаление строк в файле

 ,


0

1

Задача: удалить все строки, содержащие /zero/33 в файле /zero/volumes. Пробовал следующее:

sed //zero/33/d /zero/volumes

sed /zero/33/d /zero/volumes

но sed отвечает ошибками. Как сделать правильно?



Последнее исправление: cr0x (всего исправлений: 1)

Ответ на: комментарий от anarquista

не работает

выводит левую строку и ничего не удаляет

cr0x
() автор топика
Ответ на: комментарий от Arrest

это крайний вариант, хочется без лишних движений

cr0x
() автор топика
Ответ на: комментарий от cr0x

чтобы изменения происходили в файле, нужно добавить ключик -i. Ну неужели так сложно прочитать man sed хотя бы по диагонали?

anarquista ★★★★★
()
Ответ на: комментарий от cr0x

а нет, всё нормально, не ту команду использовал

cr0x
() автор топика

grap -v «/zero/33» /zero/volumes

invy ★★★★★
()

sed //zero/33/d /zero/volumes

/REGEXP/

Выбирает только строки, в которых встречается выражение /REGEXP/ , если ваше выражение содержит «/», вы их должны экранировать обратным слешем «\».

Если «POSIXLY_CORRECT» не определена, то пустое выражение // совпадает с последним найденным выражением команды s///.

Замечание

Скомпилированое регулярное выражение может изменится в процессе выполнения скрипта.

Если переменная «POSIXLY_CORRECT» установлена, то пустое регулярное выражение ни с чем не совпадает. Такое поведение определено стандартом POSIX.

\%REGEXP%

(Вместо % можно использовать любой другой символ)

Так-же как и /REGEXP/, но вместо разделителя(слеша) используется %(либо другой символ), если в выражении присутствует разделитель, его необходимо экранировать.

и зачем я это всё переводил?..

drBatty ★★
()
7 марта 2014 г.

Подниму тему. А как удалить строку из файла, если это строка - ссылка? Т.е. если $STR="http://linux.org.ru", то sed -i «$STR»/d" file ругается на спец символы. Каким способом вырезать строку в таком случае?

igornet
()
Ответ на: комментарий от igornet

Придумал - можно удалить строку по ее номеру. Только этот номер нужно еще как-то получить.

igornet
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.