URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 4864
[ Назад ]

Исходное сообщение
"sed удалить символ"

Отправлено spiny , 21-Ноя-05 14:16 
чего-то я туплю, как из строки удалить n символов при помощи sed
частный случай:
удалить первый символ.

Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"sed удалить символ"
Отправлено idle , 21-Ноя-05 16:58 
>чего-то я туплю, как из строки удалить n символов при помощи sed
>
>частный случай:
>удалить первый символ.
>
>Заранее спасибо.

sed -E ``/./s///`` file


"sed удалить символ"
Отправлено SergeiZz , 29-Ноя-05 15:08 
>чего-то я туплю, как из строки удалить n символов при помощи sed
>
>частный случай:
>удалить первый символ.
>
>Заранее спасибо.

bash$ echo 1234567 | sed -e 's/^.\{3\}//'
4567


"sed удалить символ"
Отправлено veteran , 30-Дек-09 10:46 
>>чего-то я туплю, как из строки удалить n символов при помощи sed
>>
>>частный случай:
>>удалить первый символ.
>>
>>Заранее спасибо.
>
>bash$ echo 1234567 | sed -e 's/^.\{3\}//'
>4567

Ребята подскажите как удалить все до и после определенных символов пример:

Имеем строку:

4877:45ClientUserinfoChanged: 0 n\ExcessivePlayer\t\0\model\sarge\hmodel\sarge\c\5???5\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0

надо сделать так чтобы осталась только имя игрока (ExcessivePlayer), тоесть всё до "n\" и постле "\t" надо убрать. Читал ман по седу но бъюсь уже который час с тем что он не понимает "\t" как текст. Спасибо!



"sed удалить символ"
Отправлено phpcoder , 30-Дек-09 11:02 
>бъюсь уже который час с тем что он не понимает "\t"

Используйте экранирование.


"sed удалить символ"
Отправлено veteran , 30-Дек-09 22:16 
>>бъюсь уже который час с тем что он не понимает "\t"
>
>Используйте экранирование.

Никак не доганю как, в примере выше не могу подставить букву, только цифры.
Вот нашёл такое: echo str Hello, LOR \' | sed "s/Hello\(.*\)'/\1/"
минус в том что мне надо удалить не только совпадение а все до и после совпадения (ну или распечатать только всё после совпадения до следующего совпадения, это что проще будет). Спасибо за ответ.


"sed удалить символ"
Отправлено dromer , 15-Янв-10 11:51 
>>>бъюсь уже который час с тем что он не понимает "\t"
>>
>>Используйте экранирование.
>
>Никак не доганю как, в примере выше не могу подставить букву, только
>цифры.
>Вот нашёл такое: echo str Hello, LOR \' | sed "s/Hello\(.*\)'/\1/"
>минус в том что мне надо удалить не только совпадение а все
>до и после совпадения (ну или распечатать только всё после совпадения
>до следующего совпадения, это что проще будет). Спасибо за ответ.

Я для того чтобы понимал "\t" добавлял пробел перед\t. Типа так

# Вставляю после Depth строку моих видеорасширений. (По умолчанию инсталируется очень высокое)
sed -i -e '/ *\tDepth/ a \ \t \tModes    "1024x768" "800x600" "640x480"' /etc/X11/xorg.conf


"sed удалить символ"
Отправлено Я , 11-Окт-11 12:09 
echo "4877:45ClientUserinfoChanged: 0 n\ExcessivePlayer\t\0\model\sarge\hmodel\sarge\c\5???5\c1\4\c2\5\hc\100\w\0\l\0\tt\0\tl\0" | cut -d' ' -f3 | cut -d'\' -f2