![]() |
|
|
Google unix.com
|
|||||||
| Форумы | Регистрация | Правила форума | Ссылки | Альбомы | ЧАВО | Список участников | Календарь | Поиск | Сегодняшние сообщения | Отметить форумы читать |
| Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь. |
Подробнее UNIX и Linux Темы форума можно найти полезные
|
||||
| Нить | Резьба для начинающих | Форум | Ответы | Последнее сообщение |
| Parse XML-список задач для создания каждого файла task.xml | MissI | Shell программирование и сценарии | 3 | 11-11-2008 02:20 PM |
| Комментарии и Раскомментируйте одной задачи из нескольких задачи | madhusmita | Shell программирование и сценарии | 9 | 06-18-2008 10:42 AM |
| Арифметические операторы | filda | UNIX для чайников Вопросы И Ответы | 0 | 06-13-2008 01:55 AM |
| Могу ли я пользоваться туалетом-L с арифметическим выражением? | lalelle | Shell программирование и сценарии | 3 | 08-11-2007 07:44 PM |
| арифметика в KSH | Амон | Shell программирование и сценарии | 12 | 02-05-2007 02:43 AM |
![]() |
|
|
LinkBack | Резьба Инструменты | Искать в этом Thread | Оценить Thread | Режимы дисплея |
|
|
|
||||
|
SED или AWK для арифметической задачи
Я файл с таким типом формате
01.02.09 08:30 Bob Джил пометить 01.04.09 07:00 Bob Джил пометить Томь Я хочу рассчитывать фамилии после даты / ИМЕ линия (01.02.09 08:30), и добавить, что число после того, как эта 01.02.09 08:30 3 01.04.09 07:00 4 Я не заботятся о фамилии после подсчета так я могу оставить их или лишить с SED если она упрощает этот процесс. Я мог бы также перенаправить вывод о дате / времени, и рассчитывать на второй файл, если он делает это проще. Единственное, что мне действительно нужно дату / время и число на той же линии. Что является лучшим средством для достижения этой цели, и кто-то может привести пример? |
|
||||
|
Практически это
Nice ...
Мне пришлось добавить пространства "и изменить NF-1 NF-2 для получения точных рассчитывать на всех линиях, кроме последнего и первого въезда. NF-1 дает правильный выход для последней строке рассчитывать только. Я имею 9000 строк и поэтому я с последним и первым неправильно не важный вопрос. Следующая проблема заключается в том, что вывод только время в строке следующим образом: 10:00 4 11:00 6 Мне нужна дата на выходе. В настоящее время поиск через nawk вручную, чтобы выяснить, каким образом совместить времени и даты в выходных. Любое быстрое предложения? BTW, nawk 1.3.3 работает с Ubuntu 8.10 |
|
||||
|
ввода: Код:
01.02.09 08:30 bob jill mark 01.04.09 07:00 bob jill mark tom 01.02.09 09:30 bob jill mark hj gh fm 01.04.09 10:00 bob jill mark tom aaa bbb ccc вывод: Код:
01.02.09 08:30 3 01.04.09 07:00 4 01.02.09 09:30 6 01.04.09 10:00 7 код: Код:
#!/usr/bin/perl
$/="\n\n";
open FH,"<a.txt";
while(<FH>){
my @temp=split("\n",$_);
print $temp[0]," ",$#temp,"\n";
}
Код:
awk '/[0-9]*\.[0-9]*\.[0-9]* [0-9][0-9]:[0-9][0-9]/{
a=$0
next
}
/^ *$/{
print a" "n
n=0
next
}
{
n++
}
' a.txt
Последний раз редактировалось summer_cherry; на 02-11-2009 11:54 PM.. |
|
||||
|
summer_cherry и AWK Perl Скрипт работал прекрасно, как есть ... Мне просто нужно понять, как вы сделали это ... спасибо ...
|
|
|||||
|
Цитата:
mar.txt: Код:
01.02.09 08:30 bob jill mark 01.04.09 07:00 bob jill mark tom nawk 'BEGIN (RS \u003d FS \u003d "") (печатных $ 1, NF-1)' mar.txt вывод: Код:
01.02.09 08:30 3 01.04.09 07:00 4 Выглядит штрафа для меня. Почтовые ваш входной файл (или его часть), используя Vb кодекса теги. |
|
||||
|
ответ
Используя одни и те же данные у вас, например, я получил следующее:
nawk 'BEGIN (RS \u003d FS \u003d "") (печатных $ 1, NF-1)' data.txt 0 27 0 31 Добавление пространства для "" $ Nawk 'BEGIN (RS \u003d FS \u003d "") (печатных $ 1, NF-1)' data.txt 01.02.09 0 08:30 4 07:00 4 Переход на NF-2 $ Nawk 'BEGIN (RS \u003d FS \u003d "") (печатных $ 1, NF-2)' data.txt 01.02.09 -1 08:30 3 07:00 3 |
![]() |
| Закладки |
| Резьба Инструменты | Искать в этом Thread |
| Режимы дисплея | Оценить эту ветку |
|
|