The OpenNET Project / Index page

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

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

"sed вставить текст"  +/
Сообщение от АлексейТ email(ok) on 17-Июл-11, 23:18 
данной командой вставляется пустая строка перед выражением (цифрой 5 в данном случае)
sed -i -e '/5/{x;p;x;}' tt
как сделать, чтоб вставлялся определенный текст, а не пустая строка?
Ответить | Правка | Cообщить модератору

Оглавление

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


1. "sed вставить текст"  +/
Сообщение от allez (ok) on 18-Июл-11, 04:56 
> данной командой вставляется пустая строка перед выражением (цифрой 5 в данном случае)
> sed -i -e '/5/{x;p;x;}' tt
> как сделать, чтоб вставлялся определенный текст, а не пустая строка?

Попробуйте так:

sed -i -e '/5/iопределенный текст' tt

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

2. "sed вставить текст"  +/
Сообщение от allez (ok) on 18-Июл-11, 11:34 
>> данной командой вставляется пустая строка перед выражением (цифрой 5 в данном случае)
>> sed -i -e '/5/{x;p;x;}' tt
>> как сделать, чтоб вставлялся определенный текст, а не пустая строка?
> Попробуйте так:
>
sed -i -e '/5/iопределенный текст' tt

P. S. На тот случай, если текст нужно будет вставлять не отдельной строкой, а в одной
строке с выражением, воспользуйтесь такой командой:

sed -i -e 's/5/определенный текст &/g' tt

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

3. "sed вставить текст"  +/
Сообщение от АлексейТ email(ok) on 22-Июл-11, 19:35 
proxy# sed -i -e '/5/iyyyyyyy' tt
sed: 1: "/5/iyyyyyyy": command i expects \ followed by text
proxy# sed -i -e '/5/i\yyyyyyy' tt
sed: 1: "/5/i\yyyyyyy": extra characters after \ at the end of i command
proxy# sed -i -e '/5/i\yyyyyyy\' tt
sed: 1: "/5/i\yyyyyyy\": extra characters after \ at the end of i command
proxy# sed -i -e '/5/iyyyyyyy\' tt
sed: 1: "/5/iyyyyyyy\": command i expects \ followed by text
proxy# sed -i -e '/5/i yyyyyyy\' tt
sed: 1: "/5/i yyyyyyy\": command i expects \ followed by text


proxy# sed -i -e 's/5/ddd &/g' tt - не заменяет, а добавляет перед выражением

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

4. "sed вставить текст"  +/
Сообщение от allez (ok) on 22-Июл-11, 19:57 
> proxy# sed -i -e 's/5/ddd &/g' tt - не заменяет, а добавляет
> перед выражением

Ну да, добавляет. У вас ведь нигде не сказано, что нужна именно замена. А чтобы sed
заменял  искомое выражение, уберите из команды амперсанд:

sed -i -e 's/5/ddd/g' tt

По поводу ошибок в команде "i" могу сказать одно: читайте свой man sed, поскольку
вы не поделились никакой информацией ни об используемой ОС, ни о версии sed. Кроме того, у
меня таких ошибок не возникает:

$ echo -e "125369\ndsf\n5\nfd989" | sed -e '/5/iопределенный текст'
определенный текст
125369
dsf
определенный текст
5
fd989

$ echo -e "125369\ndsf\n5\nfd989" | sed -e 's/5/ определенный текст &/'
12 определенный текст 5369
dsf
определенный текст 5
fd989

$ echo -e "125369\ndsf\n5\nfd989" | sed -e 's/5/ определенный текст /'
12 определенный текст 369
dsf
определенный текст
fd989

$ sed --version
GNU sed версия 4.2.1


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

5. "sed вставить текст"  +/
Сообщение от АлексейТ email(ok) on 22-Июл-11, 20:28 
sed -i -e 's/5/ddd/g' tt

спасибо, этого достаточно

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

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

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




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

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