Ru-Board.club
← Вернуться в раздел «UNIX»

» bash, sed, разрыв строк. нужна помощь )

Автор: dtux
Дата сообщения: 10.06.2010 16:37
всем привет. есть это:


Код:
sed -e 's/udp:\/\/@224\.5\.5\.\(.*\)/http:\/\/192.168.10.1:81\/udp\/224.5.5.\1:1234/g' IPTV.m3u > iptv-out.m3u
Автор: ulego
Дата сообщения: 10.06.2010 17:02
Все получается. Только надо первый файл отредактировать - закончить его пустой строкой
Автор: dtux
Дата сообщения: 10.06.2010 17:32
ну там пустая строка в конце изначально была... и это ничего не дает.. что с пустой строкой, что без нее - одинаково....
для наглядности привожу скрин mcedit
http://img263.imageshack.us/img263/2450/dtuxd1.png
Автор: ulego
Дата сообщения: 10.06.2010 18:32
так у тебя файл созданный в виндоус! Это все обьясняет, ибо значек перевода строки в win и lin разные. Сначала тебе надо избавиться от этого значка "^M"!
dos2lin sed 's/.$//' | sed 's/^M$//' | sed 's/\x0D$//' илил например так: cat file | tr -d ^M > file1
потом делаешь то что тебе надо, потом обратно в dos
lin2dos sed 's/$'"/`echo -e \\\r`/"
или вообще объедини все команды в одну (я имею в виду sed)
Удачи!
Автор: dtux
Дата сообщения: 10.06.2010 18:53
спасибо ))
Автор: dtux
Дата сообщения: 15.06.2010 18:26
итак.. появилось время тут отписаться. в общем всё решилось так:
#!/bin/sh
cd /home/dtux ; #Перейти в нужный каталог
wget http://что-то там/IPTV.m3u ; #Скачать плейлист с провайдерского сервера
sed -e 's/udp:\/\/@224\.5\.5\.\(.*\)/http:\/\/192.168.10.1:81\/udp\/224.5.5.\1:1234/g' IPTV.m3u > iptv-out.m3u ; #Добавить в плейлист инфу от udpxy
cat iptv-out.m3u | tr -d '\r' > iptv.m3u ; # Убрать виндовый переност строк
rm IPTV.m3u iptv-out.m3u ; #удалить не нужное

exit 0;

Страницы: 1

Предыдущая тема: помогите выбрать способ бэкапа


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.