Как удалить строки в соответствии с номерами в bash ?

На самом деле это единственный раздел про unix на этом форуме

Модераторы: /dev/random, Модераторы разделов

virt121
Сообщения: 1

Как удалить строки в соответствии с номерами в bash ?

Сообщение virt121 »

Началось с того что мне надо было поменять строки местами

строки такие:

/dev/device/dev-swap,xvda1 (18)
/dev/device/dev-disk,xvda2 (19)

т.е надо было заменить swap и xdva1 на disk и xvda2.

в итоге я решил сделать проще

sed -i '19{h;n;p;g}' $FILE
sed -i '18{h;n;p;g}' $FILE

У меня получилось 4 строки, последние 2 в том порядке который мне нужен. Вопрос: как удалить две предыдущие, зная их номер ?
Спасибо сказали:
Аватара пользователя
sash-kan
Администратор
Сообщения: 13939
Статус: oel ngati kameie
ОС: GNU

Re: Как удалить строки в соответствии с номерами в bash ?

Сообщение sash-kan »

точно так же·

удаление 18-й строки в файле file:
$ sed -i 18d file
Писать безграмотно - значит посягать на время людей, к которым мы адресуемся, а потому совершенно недопустимо в правильно организованном обществе. © Щерба Л. В., 1957
при сбоях форума см.блог
Спасибо сказали:
Аватара пользователя
Nazyvaemykh
Сообщения: 438
Статус: Подопытный участник

Re: Как удалить строки в соответствии с номерами в bash ?

Сообщение Nazyvaemykh »

Поменять местами строки можно так:

sed '18 {h;N;G;D}'
¡ Страсть к разрушению есть творческая страсть!
Спасибо сказали: