LINUX.ORG.RU

[bash] построчный вывод файла

 


0

1

Есть файл http://paste.org.ru/?eblih8

Так вот дело в том что есть задача выводить построчно каждую строку файла, потом выделять именно каждый «http:......» в source.

И далее подставлять ее и проверять далее. Но это уже второй этап, сейчас главное как то выделить все эти адресса для подстановки потом.

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


$ cat index.html\?eblih8 |grep -oE 'http://[0-9]{1,3}{1,4}.*' | while read line; do echo «Так бл**ь. Вот у нас адрес: $line. Чо с ним делать?»; done

snoopcat ★★★★★
()
Ответ на: комментарий от snoopcat

сделал по твоему примеру

вывод вот такой(кусочек):

cat: HoBblN: No such file or directory «},{name:»: No such file or directorystream",source:"http://91.210.156.50:1241 «},{name:»: No such file or directorytream",source:"http://91.210.156.50:1242 «},{name:»: No such file or directoryream",source:"http://91.210.156.50:1243 cat: 1: No such file or directory «},{name:»: No such file or directory:«stream»,source:"http://91.210.156.50:1245 «},{name:»: No such file or directoryream",source:"http://91.210.156.50:1246 «},{name:»: No such file or directorystream",source:"http://91.210.156.50:1247 «},{name:»: No such file or directoryream",source:"http://91.210.156.50:1248 «},{name:»: No such file or directoryream",source:"http://91.210.156.50:1249 «},{name:»: No such file or directorytream",source:"http://91.210.156.50:1250 cat: MTV: No such file or directory «},{name:»: No such file or directoryream",source:"http://91.210.156.50:1251 cat: Enter: No such file or directory «},{name:»: No such file or directorytream",source:"http://91.210.156.50:1252 cat: Enter: No such file or directory «},{name:»: No such file or directorystream",source:"http://91.210.156.50:1254 cat: Inter: No such file or directory «},{name:»: No such file or directoryam",source:"http://91.210.156.50:1255 «},{name:»: No such file or directorystream",source:"http://91.210.156.50:1256 cat: Music: No such file or directory cat: Box: No such file or directory «},{name:»: No such file or directoryeam",source:"http://91.210.156.50:1258 cat: Real: No such file or directory cat: Estate: No such file or directory «},{name:»: No such file or directoryeam",source:"http://91.210.156.50:1259 cat: Gumor: No such file or directory cat: TV: No such file or directory cat: /: Is a directory cat: Babay: No such file or directory «},{name:»: No such file or directoryeam",source:"http://91.210.156.50:1260 «}][/TV: No such file or directory:„stream“,source:»http://91.210.156.50:1261

Dema
() автор топика
Ответ на: комментарий от Dema

посмотрел еще раз файл, херня какая-то.
на одной строчке может быть двессылки, причём иногда ссылка оканчивается " , иногда «}, иногда вообще ничем не оканчивается
я хз как тогда

snoopcat ★★★★★
()
Ответ на: комментарий от snoopcat

я просмотрел, ссылки всегда оканчивается одинаково, форма заполнения одна то

Dema
() автор топика
Ответ на: комментарий от schizoid

Прошу прощение, надо не построчно, файл записан одной строкой, надо выбирать все http записаны в одной строке.

Dema
() автор топика
Ответ на: комментарий от uzbl

Все вышло, вывело все как нужно:)

Теперь надо каждую строку подставлять в ffmpeg: http

и писать куда-то вывод, если error, удалять строку с таким адресом.

Каким-то циклом это делать?

Dema
() автор топика
Ответ на: комментарий от Dema

Так например:

(
for i in $(grep -Eo '«http://[^»]+«' file.txt |tr -d ' »' |sort -u)
do
ffmpeg «$i» <чонадо> &>/dev/null && echo $i
done
) >output.txt

хосты, на кот-х ffmpeg не выдаст error будут в output.txt

uzbl
()
Ответ на: комментарий от uzbl

Не сработает. Надо как-то так:
for i in `grep -Eo '«http://[^»]+«' file.txt |tr -d ' »'`; do echo -n «$i ...»;ffmpeg -i $i -vframes 1 -y -f mpegts /dev/null > /dev/null 2>&1 && echo " ok" || echo " fail";done

NightSpamer
()
Ответ на: комментарий от Dema

работает в таком виде

for i in `grep -Eo '«http://[^»]+«' file.txt |tr -d ' »'`; do echo -n «$i ...»;ffmpeg -i $i -vframes 1 -y -f mpegts /dev/null > /dev/null 2>&1 && echo " ok" || echo " fail";done

вот содержимое файла output.txt

http://tv.x-lan.net.ua:8015/1plus1 ... ok http://tv.x-lan.ua:8015/mtvu ... fail http://tv.x-lan.net.ua:8015/1auto ... ok http://91.210.156.50:1257^M ... fail http://84.22.140.73:8100/MTV^M ... fail http://84.22.140.73:8100/TNT_2^M ... fail http://83.142.8.2:8002^M ... fail http://91.103.123.186:1000^M ... fail http://89.208.33.168:8100^M ...

БоЛЬШОЕ человеческое спасибо!

Dema
() автор топика
Ответ на: комментарий от Dema

Хмм, у меня такого нет; ^M это наверное \r он же cr. Посмотри hexdump -C на каком этапе он берётся.

uzbl
()
Ответ на: комментарий от Dema

только вот с error не понятно как оно будет находить,там когда не работает то вывод ffmpeg пишет в нижней строке error

Dema
() автор топика
Ответ на: комментарий от NightSpamer

Мне нужно чтоб когда в выхлопе ffmpeg будет error, тогда б писало что ошибка, а так пишет error, а канал работает

Dema
() автор топика
Ответ на: комментарий от Dema

спасибо, вроде разобрался:) в опциях ffmpeg

спасибо БОЛЬШОЕ

Dema
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.