- Вопросы по работе xargs, universite, 16:29 , 10-Янв-14 (1)
> 2) Нужно проверить статус (код ответа по http) списка доменов > Так не работает: > awk -F"/" '{print $6;}' result.log | xargs -n 1 curl -s -I > $1 | head -1 | awk '{print $2}' > Нужно логику изменить. ибо awk -F"/" '{print $6;}' result.log | xargs -n 1 echo $1
отдает список доменов полностью...
- Вопросы по работе xargs, Andrey Mitrofanov, 19:00 , 10-Янв-14 (7)
>> 2) Нужно проверить статус (код ответа по http) списка доменов >> Так не работает: >> | xargs -n 1 curl -s -I $1 | head -1 | awk '{print $2}' Ты, видимо имел в виду - ...|xargs -I{} --n1 bash -c "curl -s -I {} | head -1" |... > Нужно логику изменить. > ибо [ code] > отдает список доменов полностью... Да, не. Нужно понимать, что-где. Что $1, который ты дал xargs-у будет подставлен не им, а шелом. И вывод xargs-а будет конкатенауией всех запушенных curl-ов. И head -1 от этой сонкатенации будет именно результат (первая строка) только от первого curl-a ..... На сладкое: <result.log gawk -F/ '{arr[++nn]=$6}END{FS=" ";for(i=1;i<=nn;i++){cmd="curl -s -I "$6";cmd|getline;close(cmd);print $2}'
- Вопросы по работе xargs, Andrey Mitrofanov, 19:12 , 10-Янв-14 (8)
> ..... > На сладкое: > <result.log gawk -F/ '{arr[++nn]=$6}END{FS=" ";for(i=1;i<=nn;i++){cmd="curl -s -I "$6";cmd|getline;close(cmd);print 2}' Агкхр... Скука какая. <result.log gawk -F/ '{arr[++nn]=$6}END{FS=" ";for(i=1;i<=nn;i++){cmd="curl -s -I "arr[i];cmd|getline;close(cmd);print$2}'
- Вопросы по работе xargs, universite, 14:32 , 11-Янв-14 (16)
>> ..... >> На сладкое: >> <result.log gawk -F/ '{arr[++nn]=$6}END{FS=" ";for(i=1;i<=nn;i++){cmd="curl -s -I "$6";cmd|getline;close(cmd);print 2}' > Агкхр... Скука какая. > <result.log gawk -F/ '{arr[++nn]=$6}END{FS=" ";for(i=1;i<=nn;i++){cmd="curl -s -I "arr[i];cmd|getline;close(cmd);print$2}' После
print$2} ^ unexpected newline or end of string
}' --> }}'
- Вопросы по работе xargs, pavlinux, 17:36 , 10-Янв-14 (2)
> awk -F"/" '{print $6;}' result.log | xargs -n 1 curl -s -I $1 | head -1 | awk '{print $2}' > Если в скрипте 2 и более раз используется одна и та же утиль, то это ошибка. > Получаем ответ только первого элемента списка awk -F"/" '{print $6;}' result.log , > а остальные два десятка элементов игнорируются. Отседа вывод: нужно обрабатывать возврат каждой отдельно for i in `awk -F"/" '{print $6;}' result.log` do res=$(curl -s -I $i); if [ $res == че-надо ] echo $res | head -1 | cut -d" " -f2; else continue; done ... как-то так
- Вопросы по работе xargs, universite, 18:01 , 10-Янв-14 (3)
>> Получаем ответ только первого элемента списка awk -F"/" '{print $6;}' result.log , >> а остальные два десятка элементов игнорируются. > Отседа вывод: нужно обрабатывать возврат каждой отдельно Благодарю. Скрипт теперь выглядит так:
for i in `awk -F"/" '{print $6;}' result.log`; do echo -e "$i\t\t`curl -s -I $i | head -1 | cut -d" " -f2;`" done
Скорость выполнения соответствующих команд равнозначна:
time cut -d"/" -f6 result.log time awk -F"/" '{print $6;}' result.log
Возможно при обработке гигабайтных файлов будут отличия...
- Вопросы по работе xargs, pavlinux, 18:07 , 10-Янв-14 (4)
> Возможно при обработке гигабайтных файлов будут отличия...Ты ж знаешь, - как начинаются гигабайты нужно врубать sed. Но у тебя всё равно узким местом будет curl, поэтому спасут только Perl/Ruby/Python/...
- Вопросы по работе xargs, universite, 18:20 , 10-Янв-14 (5)
>> Возможно при обработке гигабайтных файлов будут отличия... > Ты ж знаешь, - как начинаются гигабайты нужно врубать sed. > Но у тебя всё равно узким местом будет curl, поэтому спасут только > Perl/Ruby/Python/...В данный момент, да однопоточно. Но я же могу использовать & и писать результат в отдельный лог. curl самый надежный консольный http клиент. Для Perl/Ruby/Python/ нужно подключать модули и чем сложнее и навороченнее сайт, тем больше модулей надо подключать :)
- Вопросы по работе xargs, pavlinux, 22:00 , 10-Янв-14 (15)
> curl самый надежный консольный http клиент. > Для Perl/Ruby/Python/ нужно подключать модули и чем сложнее и навороченнее сайт, тем > больше модулей надо подключать :) Когда пойдут гигабайтные логи, задумаешься, почему сразу на перлерубипитоне не написал.
- Вопросы по работе xargs, Andrey Mitrofanov, 18:36 , 10-Янв-14 (6)
>> awk -F"/" '{print $6;}' result.log | xargs -n 1 curl -s -I $1 | head -1 | awk '{print $2}' >> > Если в скрипте 2 и более раз используется одна и та же > утиль, то это ошибка.Это чушь. У двух авков тут (ты же про них?) совершенно разная область действия. Вот head можно довольно легко в соседний awk "внести". В принципе, можно и xarg внести, но тогда пидётся очень вдумчиво понисмать, чего пишешь, возможно, получится GNU awk специфично, и, в конце концов _придётся :) объединить 2 awk-а.
- Вопросы по работе xargs, pavlinux, 19:55 , 10-Янв-14 (9)
>>> awk -F"/" '{print $6;}' result.log | xargs -n 1 curl -s -I $1 | head -1 | awk '{print $2}' >>> >> Если в скрипте 2 и более раз используется одна и та же >> утиль, то это ошибка. > Это чушь. У двух авков тут (ты же про них?) совершенно > разная область действия.Делешь афк основной программой, остальные как его аргументы. Выше схема: AWK( HEAD( CURL( AWK() ))); переделывается в AWK( HEAD( CURL()), AWK()), что есть две функции AWK( HEAD( CURL()), AWK()) + AWK(AWK()) и как ты написал - AWK(AWK()) самопоглощается, и получим: AWK( HEAD( CURL()), var); , где var - какая-то вспомог. переменная (скорее всего глобальная) Теперь самый гиморp - представить это в виде кода :D
- Вопросы по работе xargs, universite, 20:26 , 10-Янв-14 (10)
>>>> awk -F"/" '{print $6;}' result.log | xargs -n 1 curl -s -I $1 | head -1 | awk '{print $2}' >>>> >>> Если в скрипте 2 и более раз используется одна и та же >>> утиль, то это ошибка. >> Это чушь. У двух авков тут (ты же про них?) совершенно >> разная область действия. > Делешь афк основной программой, остальные как его аргументы.А по первому вопросу есть мысли?
- Вопросы по работе xargs, Andrey Mitrofanov, 20:33 , 10-Янв-14 (11)
>> Делешь афк основной программой, остальные как его аргументы.Павлин, глаза выше! > А по первому вопросу есть мысли? |xargs -I{} -n1 mv {} {}-OFF
- Вопросы по работе xargs, universite, 21:44 , 10-Янв-14 (13)
>> А по первому вопросу есть мысли? > |xargs -I{} -n1 mv {} {}-OFF Работает!
- Вопросы по работе xargs, pavlinux, 21:51 , 10-Янв-14 (14)
>>> Делешь афк основной программой, остальные как его аргументы. > Павлин, глаза выше!Ну не заметил...
|