Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
|

19.10.2009, 23:12
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
BASH
чета немогу в нете найти это:
как в баше легко работать со строками ?
к примеру есть строка
<какаянить хрень> текст1: текст2<опять хрень>
Нужно из нее извлечь подстроки в переменны
переменная1=текст1
переменная2=текст2
Кострукции со всякими там dd, sed уж больно хитроЫебаными получаются и даже близко немогу подобраться к тому что надо.
Через ${строка#подстрока} тоже както все хреново выглядит.
Нужна всегото функция которая будет копировать с n до m сомволов
и еще одна для поиска ключеного символа :
чтото типо этого
a=найти_позицию_символа(СТР КА,ПОДСТРОКА)
переменная1=скопирова(СТРО А, С_ЭТОЙ_ПОЗИЦИИ, ДО_ЭТО_ПОЗИЦИИ)
или баш такого вообще не умеет ?
PS. вот это самое простой что я смог накатать
Код:
line=`echo $find_string | dd bs=1 skip=7 count=$((${#find_string}-8-8))` #вырезаем искому серединку
len=`expr index "$line" :` # номер позиции ключевого символа
echo ${line:0:$((len-1))} #вывод парвой части
size=${#line}
echo ${line:$((len+1)):size} #вывод второй части
боюсь я уже через пару дней с трудом смогу понять то что самже и написал  проще надо, прощеее
Последний раз редактировалось cupper; 19.10.2009 в 23:39..
|
|
|

20.10.2009, 10:27
|
|
Banned
Регистрация: 11.03.2009
Сообщений: 214
Провел на форуме: 914766
Репутация:
317
|
|
Нужна всегото функция которая будет копировать с n до m сомволов
и еще одна для поиска ключеного символа :
Хотел было посоветовать тебе grep и sed и если тебе нужно конкректно это то: не чем не могу помочь...
Зы., было бы самому интерестно посмотреть решения., если найдешь запости сюда, или кинь в личку.
|
|
|

20.10.2009, 13:41
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
вот так сделал
Код:
#line=`echo $find_string | dd bs=1 skip=7 count=$((${#find_string}-8-8))` результат один итотже, кому как нравится
line=`expr substr $find_string 8 $((${#find_string}-16))` #выдераем нужную серединку
len=`expr index "$line" :` # находи позицию разделителя
table_db=${line:0:$((len-1))} # берем первую половинку
table_name=${line:len} # берем правую половинку
echo "$table_db | $table_name"
пример:
вход
find_string="<title>information_schema:CHARACTER_S ETS</title>"
ВЫход:
information_schema | CHARACTER_SETS
Последний раз редактировалось cupper; 20.10.2009 в 13:46..
|
|
|

20.10.2009, 16:03
|
|
Banned
Регистрация: 11.03.2009
Сообщений: 214
Провел на форуме: 914766
Репутация:
317
|
|
Код:
bla=$(cat page | grep -o " title>.*</title" | sed ' s/title//; s/\//; s/\<//; s/\//; s/title//')
echo $bla
information_schema:CHARACTER_SETS
Так не проще?
Хотя с find_string тоже норм...
А вообще если вы пишити скрипт для выдерания тайтлов то можно воспользоваться curl
Код:
bla=$(curl -s bla/index.html | grep -o " title>.*</title" | sed ' s/title//; s/\//; s/\<//; s/\//; s/title//')
echo $bla
information_schema:CHARACTER_SETS
В данном примере будет выводится все что находится между тайтломи, будь то character set или admin (((
Последний раз редактировалось farex; 20.10.2009 в 16:14..
|
|
|

20.10.2009, 17:24
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
А вообще если вы пишите скрипт для выдирания тайтлов то можно воспользоваться curl
не для выдирания тайтлов, искомая строка может быть где угодно, это к сожалению токо вручную сначала смотреть где находить строка, каки есть рядом уникальные значения по ним уже выдирать строку.
find_string как раз и получается после того как грепаю вывод curl'a
если юзать sed конечно код уменьшиться, но синтаксис у него адский, не осилил, притом модифицировать придется под каждый конкретный случай вывода curl, и sed править сложнее чем проста отсчитать количество удаляемых символов с лева и права, для меня покрайней мере.
|
|
|

20.10.2009, 17:34
|
|
Banned
Регистрация: 11.03.2009
Сообщений: 214
Провел на форуме: 914766
Репутация:
317
|
|
хм, а по словарю не проще будет грепать..?
PS: А sed изучай по маленькку, он те еще не раз пригодится
ну и awk тож будет полездно.(
Последний раз редактировалось farex; 20.10.2009 в 18:23..
|
|
|

20.10.2009, 18:48
|
|
Участник форума
Регистрация: 15.12.2006
Сообщений: 212
Провел на форуме: 587761
Репутация:
144
|
|
Уважаемые ачатовцы...
Пришла мне по почте ubuntu 9.04, которую ранее заказывал.
Сейчас уже подготовил себя к переходу на эту ОС.
Единственная проблема, которая возникла:
Драйвера.. Ставлю ubuntu на ноутбук. А там соответственно горячие клавиши присутствуют. Драйверов под linux на официальном сайте разработчиков я не нашел. Как быть?
Доп. информация:
Модель ноутбука: http://www.3dnews.ru/mobile/asus_f3jp_samsung_r55 - Asus F3JP
Необходимые драйвера: ATK HotKey, Asus Splendid.
Последний раз редактировалось zythar; 21.10.2009 в 16:30..
|
|
|

20.10.2009, 19:44
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
хм, а по словарю не проще будет грепать..?
эм, че за словарь ? непонимаю про что ты.
|
|
|

20.10.2009, 20:32
|
|
Banned
Регистрация: 11.03.2009
Сообщений: 214
Провел на форуме: 914766
Репутация:
317
|
|
я имею введу:
Славари дефолтных таблиц в БД.
Можно составить словарь например MSQL и сравнивать строки по нему, тоесть если попадается какая либо табла из словаря., то скрипт грепает строки из исходника html страници ..итд...
Это легко осуществимо по средством bash и ИМХО это самый простой способ.
|
|
|

20.10.2009, 20:33
|
|
Постоянный
Регистрация: 06.06.2007
Сообщений: 575
Провел на форуме: 1180737
Репутация:
180
|
|
Понятно про что ты, но у меня другая задача :)
Последний раз редактировалось zythar; 21.10.2009 в 16:24..
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|