The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

форумы  помощь  поиск  регистрация  вход/выход  слежка  RSS
"sed, удалить предпоследнию стороку из файла."
Вариант для распечатки  
Пред. тема | След. тема 
Форум Программирование под UNIX (Shell скрипты)
Изначальное сообщение [ Отслеживать ]

"sed, удалить предпоследнию стороку из файла."  +/
Сообщение от renton email(ok) on 20-Дек-07, 22:43 
Привет друзья.

Как с помощью sed можно удалить предпоследнюю строку из файла.
Пока только додумался до такого:
# sed -n -e '$!=' etc/group | tail -n 1
и по номеру строки уже удалять.
Можно как-то сделать проще?

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "sed, удалить предпоследнию стороку из файла."  +/
Сообщение от allez (ok) on 21-Дек-07, 18:03 
>Привет друзья.
>
>Как с помощью sed можно удалить предпоследнюю строку из файла.
>Пока только додумался до такого:
># sed -n -e '$!=' etc/group | tail -n 1
>и по номеру строки уже удалять.
>Можно как-то сделать проще?

Да в общем-то вы все правильно делаете, на мой взгляд. В данном случае, похоже, именно
по номеру строки придется ориентироваться. У меня вот такая конструкция получилась:

sed -n "$(expr `sed -n '$=' /etc/group` - 1)d" /etc/group

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "sed, удалить предпоследнию стороку из файла."  +/
Сообщение от madskull (??) on 24-Дек-07, 22:24 

>Можно как-то сделать проще?

sed -n '1{x;b};${p;b};{x;p}' file

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

3. "sed, удалить предпоследнию стороку из файла."  +/
Сообщение от allez (ok) on 25-Дек-07, 05:40 
>
>>Можно как-то сделать проще?
>
>sed -n '1{x;b};${p;b};{x;p}' file

Ну, супротив madskull'а я все равно что плотник супротив столяра. :-)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

10. "sed, удалить предпоследнию стороку из файла."  +/
Сообщение от Bogdan email(??) on 29-Дек-16, 09:58 
>>
>>>Можно как-то сделать проще?
>>
>>sed -n '1{x;b};${p;b};{x;p}' file
> Ну, супротив madskull'а я все равно что плотник супротив столяра. :-)

allez, я извиняюсь, это на каком языке?

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

6. "sed, удалить предпоследнию стороку из файла."  +/
Сообщение от renton email(ok) on 25-Дек-07, 12:52 
>>Можно как-то сделать проще?
>
>sed -n '1{x;b};${p;b};{x;p}' file

Да, это высший пилотаж ;)
А вас не затруднит расшифровать, что при этом делает sed?

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "sed, удалить предпоследнию стороку из файла."  +/
Сообщение от madskull (??) on 25-Дек-07, 14:49 
>>>Можно как-то сделать проще?
>>
>>sed -n '1{x;b};${p;b};{x;p}' file
>
>Да, это высший пилотаж ;)
>А вас не затруднит расшифровать, что при этом делает sed?

Логика примитивная, команды есть в мане...
Текущую строку запоминаем, предыдущую выводим. В случае последней строки, выводим ее, а предыдущую (она же предпоследняя), забываем.

Кстати, если подумать, то можно даже вот так изобразить:
sed -n 'x;1b;$x;p' file

Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

9. "sed, удалить предпоследнию стороку из файла."  +/
Сообщение от krigstask on 03-Дек-11, 21:25 
>[оверквотинг удален]
>>>
>>>sed -n '1{x;b};${p;b};{x;p}' file
>>
>>Да, это высший пилотаж ;)
>>А вас не затруднит расшифровать, что при этом делает sed?
> Логика примитивная, команды есть в мане...
> Текущую строку запоминаем, предыдущую выводим. В случае последней строки, выводим ее, а
> предыдущую (она же предпоследняя), забываем.
> Кстати, если подумать, то можно даже вот так изобразить:
> sed -n 'x;1b;$x;p' file

Не работает с -i: все строки (кроме предпоследней) дублируются в файле.

GNU sed 4.2.1

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

4. "sed, удалить предпоследнию стороку из файла."  +/
Сообщение от Аноним on 25-Дек-07, 08:48 
>Привет друзья.
>
>Как с помощью sed можно удалить предпоследнюю строку из файла.
>Пока только додумался до такого:
># sed -n -e '$!=' etc/group | tail -n 1
>и по номеру строки уже удалять.
>Можно как-то сделать проще?

sed '$d' file

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "sed, удалить предпоследнию стороку из файла."  +/
Сообщение от allez (ok) on 25-Дек-07, 09:19 
>sed '$d' file

Аноним, так вы удалите последнюю строку, а автору темы требуется удалить предпоследнюю.
Чувствуете разницу? ;-)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

8. "sed, удалить предпоследнию стороку из файла."  +/
Сообщение от Аноним on 25-Дек-07, 15:09 
>>sed '$d' file
>
>Аноним, так вы удалите последнюю строку, а автору темы требуется удалить предпоследнюю.
>
>Чувствуете разницу? ;-)

Сори :-) не правильно прочитал :-)
отставить '$d' :-)

Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2021 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру