AWK forever
[Most Recent Entries]
[Calendar View]
[Friends]
Below are the 20 most recent journal entries recorded in
AWK forever's LiveJournal:
| Thursday, September 8th, 2011 | 1:06 am [cottidianus]
 |
awk 101
Друг попросил на пальцах показать, что такое awk и с чем его едят. Получилось такое: ( awk 101Collapse ) | | Thursday, December 30th, 2010 | 12:07 pm [shestero]
 |
разделить поле на AWK
Одно из полей исходных данных содержит заключённый в кавычки путь к фалу. Нужно отделить директорию от имени файла. Т.е. разбить по "/" и отделить последнее "подполе" от остальной части поля. Заодно убрать кавычки. Как это сделать на AWK? Current Mood: busy | | Monday, July 26th, 2010 | 7:02 pm [caban1]
 |
Самый часто встречающийся IP
Народ есть лог где первый столбец это айпи адреса, вопрос можно ли средставами awk, определить какой IP-адрес чаще всего встречается в логе? | | Thursday, July 23rd, 2009 | 2:36 pm [sr_v]
 |
Суммирование поля
Народ, всем привет! Есть у меня вопрос: есть файл (реестр платежных поручений) в котором все поля разделены символом - `;'. Необходимо разобрать этот файл по полям, и проссумировать каждое 6-е поле, чтобы в итоге назвать общую сумму реестра. Разбор-то я сделал, а вот с суммированием никак не могу справится :( вот код:
{
if(/^#/){print $1,"-HEADER"}
else{
for(i=1;i<=NF-1;i++)
if(i<=25){print("str:",NR-6,"fld:",i,"-",$i)}
if(i=25){print("str:",NR-6,"fld:",i,"-",$i,"\n")}
}
}
Заранее спасибо! UPD: Вопрос решен. Решение ниже...
#Утилита для разбора реестра платежных поручений v.1.0.4
#Запускается при помощи batch-файла reestr.cmd
{
if(/^#/){print $1,"-HEADER"}
else{
num_fld=NF-1
#str_cnt=1
for(i=1;i<=num_fld;i++)
#Пробегаем по всем найденным полям
if(i<=num_fld){
if(i!=6){ #Если номер поля не равен 6
if(i!=7){ #а так же 7, просто выводим эту строку
print("str:",NR-6,"fld:",i,"-",$i)
}else{#если же поле равно 7 - это сумма НДС в ПП, делаем об этом пометку и запихиваем элемент в массив
print("str:",NR-6,"fld:",i,"-",$i,"- Сумма НДС")
sum_nds[$i]=$i
}
}else{#если же поле равно 6 - это сумма в ПП, делаем об этом пометку и запихиваем элемент в массив
print("str:",NR-6,"fld:",i,"-",$i,"- Сумма ПП")
sum_pp[$i]=$i
}
}
#print("\n")
if($1="0D 0A" || $1="0D" || $1="0A"){
print("Возврат каретки")
}
}
}
END{
for(x in sum_pp) #Суммируем все элементы массива с суммами ПП
sum_total=sum_pp[x]+sum_total
for(y in sum_nds) #Суммируем все элементы массива с суммами НДС ПП
sum_nds_total=sum_nds[y]+sum_nds_total
#Печатаем результат
print("--------------------------------------------------------------------------------")
print("Общее количество платежных поручений в реестре:\t\t",NR-6)
print("Общая сумма всех платежных поручений в реестре:\t\t",sum_total)
print("Общая сумма НДС всех платежных поручений в реестре:\t",sum_nds_total)
}
| | Monday, March 31st, 2008 | 3:34 pm [ltwood]
 |
| | Wednesday, March 19th, 2008 | 6:40 pm [antko]
 |
кавычки, апострофы... HELP
День добрый! Подскажите плиз, надо получить некую строку текста, заключенную в апостроф ('). Ессно, awk ругается... Делаю так (адаптировано, лишнее убрано): awk '{print "xxx=""`"$3"`"""};' < aaa.aaa при использовании [b]`[/b] получаю строку xxx=`нечто_подставленное_из_$3`. А надо чтобы вместо [b]`[/b] было [b]'[/b]... Можно как-нить ввести в программу символ [b]'[/b] и как это сделать? | | Tuesday, August 28th, 2007 | 8:30 pm [bukinr] |
программист bash
В компанию "Rambler" в отдел поисковых систем требуется программист bash для автоматизации, усовершенствования и мониторинга технологических процессов построения поискового индекса Основные требования: Необходимо: хорошие знания bash, командное окружение ОС UNIX Желательно: знания скриптовых языков (Perl,Python,awk), C/C++ Условия: Зарплата по результатам собеседования. Оформление по ТК, соц.пакет, оплачиваемый отпуск, премии Офис м. Автозаводская (в 2-х минутах ходьбы, удобный выезд на ТТК) Контактное лицо: Букин Руслан Михайлович br@rambler-co.ru Телефон: 7453619 доб. 3352 | | Friday, August 17th, 2007 | 10:14 am [myloginnameis]
 |
Вакансия: Unix-администратор в отдел хостинга телекоммуникационной компании «Караван»
Требования: * Высшее техническое образование * Опыт администрирования ОС на базе Unix (FreeBSD, Linux) * Опыт администрирования web-серверов Apache, желательно так же nginx; баз данных (MySQL), почтовых серверов (exim) * Навыки программирования на Perl, PHP , shell * Знание сетей и распространенных прикладных протоколов (HTTP, FTP, SMTP, IMAP, POP3). Основные направления работы: * Инсталляция, настройка и администрирование серверов на базе ОС FreeBSD, Linux * Осуществление технической поддержки хостинговых клиентов Условия работы: * Заработная плата по итогам собеседования * Премии * Домашний доступ в интернет * Компенсация расходов на мобильную связь * Компенсация расходов на транспорт * Оплата питания * Корпоративное обучение * Возможность карьерного роста * Соблюдение норм ТК РФ * Офис в центре Москвы (м. Кропоткинская) http://caravan.ru/mailto:job @ caravan.ru Телефон: (495) 363-22-52 г. Москва, 2-й Обыденский пер., д. 12а. | | Wednesday, July 12th, 2006 | 2:53 am [mawolf]
 |
Работа:требуется человек со хорошим знанием php для поддержки двух систем, одна типа запароленного документообота(движок стандартный)-уже написана, но будет постоянно требовать дописания новых функций вторая административная система-заведение пользователей, отключение удаления их же, создание почтовых ящиков все дела-тоже уже написана, требует доведения до ума. А так же для сотрудничества с программистом, когда на сервер необходимо будет прикрутить паролирование, поиск, рассылку и тд. Программист пишет свою часть в локальной версии программы - вы привинчиваете. Главное согласованность и чтобы все работало. работа аутсорс, но постоянная 500-800$. Место Москва. за подробностями e-mail: mawolf@m-t.su телефон 89262651475 далее будете переадресованы в офис условия взятия на работу: личное собеседование(в том числе с программистом локальной версии) доказательство квалификации, после ознакомления с системами постоянная доступность в сети и оперативность при выполнении работ в случае сбоев систем, необходимости дописания новых функций и тд желательно писать именно на почту, так ваши резюме проще переадресовывать и рассматривать(а вас проще запомнить) заодно докажете что имеете постоянный доступ в интернет:) | | Tuesday, December 27th, 2005 | 8:27 pm [w_tiger]
 |
XML & AWK
Господа! А слышал ли кто-нибудь что-нибудь о расширении gawk для XML? | | Tuesday, November 29th, 2005 | 12:03 pm [yoshke]
 |
Двойные записи
Такая задача появилась - определить одинаковые записи в фале. Видится так: делается цикл по строкам в файле, где текущая строка сравнивается с остальными строками, которые перебираются во вложенном цикле. А может в AWK это сделать проще? | | Thursday, July 28th, 2005 | 6:28 pm [yoshke]
 |
Задача: в редакторе vi есть полезная комбинация клавиш Shift+J для соединения двух строк. Хотел написать такую же функцию в AWK, что бы каждая строка соединялась с предыдущей (например, четная с нечетной). Идея была такая (псевдо-код):
{for ( j = $NR; j = 1; j-- )
if ($j % 2 = 0 ); then
chet = $j
else
nechet = $j
concat = $chet + $nechet
}
{print $concat
}
Увы :( Если есть идеи, поделитесь, плиз. | | Thursday, July 7th, 2005 | 9:00 am [xsaper]
 |
Упростить такой вот скрипт
Написал маленький скриптик, хочется теперь упростить серединку, то есть полностью разбор tcp/udp/icmp перенести на плечи awk, два вопроса: 1. Возможно ли? 2. Укажите направление, где почитать про условные операторы в awk, если таковые имеются? 3. Бонус-вопрос :-) Можно ли не использовать sed, cut и sort тут, а опять таки только awk? ( Сам скриптCollapse ) | | Friday, June 17th, 2005 | 6:24 pm [pustota1] |
Попарсим бинарник?
gawk вроде хорошо умеет с бинарными файлами обращатся. Проверим. Имеется файл файл состоит из: заголовка + тело заголовок: постоянная часть + изменяемая часть тело: поток данных. Вся надега на FIELDWIDTH, конечно. Заковыка в том что поля во всех частях разнятся. Вопрос: Как изменять FIELDWIDTH по мере продвижения по файлу, вроде NR всегда равно 1 безо всяких там \n. Есть идеи? | 1:49 am [posix]
 |
Переменное количество NF
Есть файл, в котором каждая строка содержит разное количество полей. Сколько полей (переменная NF) в каждой строке неизвестно (файл создается "на лету"), но при этом известно, что в каждой строе не может быть менее 3 полей. Например: a1 a2 a3 b1 b2 b3 b4 b5 b6 b7 b8 b9 c1 c2 c3 c4 c5 c6 d1 d2 d3 d4 e1 e2 e3 Решение мне представляется в таком виде: print $1, $2, $3, RESULT где RESULT содержит все поля с $4 до NF Вопрос, как получить RESULT? Спасибо. | | Wednesday, September 22nd, 2004 | 5:36 pm [ltwood]
 |
Просьба
Такая вот маленькая просьба. Поскольку в ru_programming сообщение о создании этого сообщества не поместили, прошу всех тех участников, кто хочет/может, разместить соответствующее сообщение в каком-нибудь подобающем месте (журнале/собществе). А то помрет оно и не родившись толком... | 12:28 pm [yoshke]
 |
Line numbers
Понадобилось пронумеровать строки с SQL кодом в файле. Файл представляет собой 1. Шапку с комментами 2. SQL код 3. Пример с выводом результатов SQL запроса (значения в таблице)
awk '{ print NR, $0 }' foo > foo.copy
не годится, т.к. нужно исключить а) строки с комментариями и б) строки с выводом значений таблицы. Есть какие-нибудь идеи? | | Tuesday, August 17th, 2004 | 1:35 am [alexis_m]
 |
Произношение
М-м... а почему название awk произносится как "оук" (oak)? Вроде как буквосочетание aw дает звук типа "о" (не знаю, как символы транскрипции написать, в общем, гласный звук, как в слове ball). Или у этого слова другое происхождение? | | Monday, August 16th, 2004 | 6:52 pm [yoshke]
 |
| | Saturday, August 14th, 2004 | 9:34 pm [ltwood]
 |
Интересно, а надо ли оно?
Сегодня я создал это комьюнити. После недели тяжких раздумий на тему 'Кто виноват?' 'Что делать?' и 'Почему я?'... Кстати, в этом году языку AWK исполняется 27 лет. |
|