Здравствуйте.
Помогите плиз сделать чтобы перл выгребал $ndate из $sfile, а не $month и $date.вот строки из скрипта:
$ndate="$month $date";
system("grep \"$ndate\" $sfile >$gfile");Заранее спасибо.
>Здравствуйте.
>Помогите плиз сделать чтобы перл выгребал $ndate из $sfile, а не $month
>и $date.
>
>вот строки из скрипта:
>$ndate="$month $date";
>system("grep \"$ndate\" $sfile >$gfile");
>
>Заранее спасибо.1) Юзать грип из перлы - это попахивает извращением )))
2) Че ты ему задаешь - то он и выгребает )))
>[оверквотинг удален]
>>и $date.
>>
>>вот строки из скрипта:
>>$ndate="$month $date";
>>system("grep \"$ndate\" $sfile >$gfile");
>>
>>Заранее спасибо.
>
>1) Юзать грип из перлы - это попахивает извращением )))
>2) Че ты ему задаешь - то он и выгребает )))ответь плиз по делу, если конечно есть что ответить.
>Здравствуйте.
>Помогите плиз сделать чтобы перл выгребал $ndate из $sfile, а не $month
>и $date.
>
>вот строки из скрипта:
>$ndate="$month $date";
>system("grep \"$ndate\" $sfile >$gfile");
>
>Заранее спасибо.мне все равно кто будет выгребать, перл своими командами или с помощью шелловского grep. главное выгребать из файла то, что задано в выражении "$month $date", а не по отдельности, потому что если grep воспринимает как рег. выражение.
Спасибо.
>$ndate="$month $date";
>system("grep \"$ndate\" $sfile >$gfile");
>
>Заранее спасибо.Попробовать можно так:
`grep "$ndate" $sfile > $gfile`;
>>$ndate="$month $date";
>>system("grep \"$ndate\" $sfile >$gfile");
>>
>>Заранее спасибо.
>
>Попробовать можно так:
>`grep "$ndate" $sfile > $gfile`;и так тоже пробовал :) эффект тот же... :(
>тоже пробовал :) эффект тот же... :(Не просветите ли, какой же?
>>тоже пробовал :) эффект тот же... :(
>
>Не просветите ли, какой же?да, конечно
bash-2.05b# cat file.txt
Mon Dec 1 10:49:40 2008
Mon Dec 1 10:49:43 2008
Mon Dec 2 10:49:45 2008
Mon Dec 3 10:51:10 2008
Mon Dec 3 10:51:40 2008
Mon Dec 3 10:52:10 2008
Mon Dec 7 10:54:20 2008
Mon Dec 7 10:55:30 2008
Mon Dec 7 10:56:30 2008
Mon Dec 8 10:57:10 2008
Mon Dec 8 10:58:15 2008
Mon Dec 8 10:58:12 2008bash-2.05b# cat scr.pl
#!/usr/bin/perl$d=`date -v -1d '+%h %d'`;
($month,$date) = split(/ /, $d);
$date=~s/0//g;$sfile="file.txt";
$gfile="file.N.txt";#$month="Dec";
#$date="7";$ndate="$month $date";
system("grep \"$ndate\" $sfile >$gfile");нужно выгребать все записи за Dec 7. Скрипт выгребает все.
НО!!! если раскомментарить $month="Dec" и $date="7", то все работает хорошо.
где засада?Спасибо.
>то все работает хорошо.
>где засада?Извините, я снова не понял -- так "всё работает хорошо" или где-то "засада"? :-O
>>то все работает хорошо.
>>где засада?
>
>Извините, я снова не понял -- так "всё работает хорошо" или где-то
>"засада"? :-OГде-то "засада" и похоже в строках где формируется дата, потому что когда присваиваешь значения переменным непосредственно ($month="Dec"; $date="7";), то все работает.
Т.е. когда делаю следующее:
$d=`date -v -1d '+%h %d'`;
($month,$date) = split(/ /, $d);
$date=~s/0//g;print "$month $date";
получаю то что нужно
Dec 7НО, при объединении в единую переменную и последующем использовании в грепе - неработает :)
$ndate="$month $date";
system("grep '$ndate' $sfile >$gfile");
>>>то все работает хорошо.
>>>где засада?chomp $d;
my ($month,$date) = split(/ /, $d);
>>то все работает хорошо.
>>где засада?
>
>Извините, я снова не понял -- так "всё работает хорошо" или где-то
>"засада"? :-Oмне кажеться мы имеем здесь дело с телепатией!
скрипту на расстоянии должны внушаться параметры работы, но вот как это сделать автор топика пока не знает.
>скрипту на расстоянии должны внушаться параметры работы, но вот как это сделать
>автор топика пока не знает.Может libastral поможет? ;)
>>>то все работает хорошо.
>>>где засада?
>>
>>Извините, я снова не понял -- так "всё работает хорошо" или где-то
>>"засада"? :-O
>
>мне кажеться мы имеем здесь дело с телепатией!
>скрипту на расстоянии должны внушаться параметры работы, но вот как это сделать
>автор топика пока не знает.неужели я плохо объяснил в преидущих постах проблему? я думал понятно :)
>[оверквотинг удален]
>>>
>>>Извините, я снова не понял -- так "всё работает хорошо" или где-то
>>>"засада"? :-O
>>
>>мне кажеться мы имеем здесь дело с телепатией!
>>скрипту на расстоянии должны внушаться параметры работы, но вот как это сделать
>>автор топика пока не знает.
>
>неужели я плохо объяснил в преидущих постах проблему? я думал понятно :)
>надо было сразу писать что у вас проблема с датой! тогда бы эта тема не разрослась на 30 постов. :)
>[оверквотинг удален]
>>>
>>>Извините, я снова не понял -- так "всё работает хорошо" или где-то
>>>"засада"? :-O
>>
>>мне кажеться мы имеем здесь дело с телепатией!
>>скрипту на расстоянии должны внушаться параметры работы, но вот как это сделать
>>автор топика пока не знает.
>
>неужели я плохо объяснил в преидущих постах проблему? я думал понятно :)
>советую поставить пакет DateTime, и сделать все через него!
use DateTime;
my $d = DateTime->now();
$d->subtract( days=>1 );
print $d->month_abbr()." ".$d->mday()."\n";
И почему-то мне мерещится FreeBSD... глюк, наверное.>bash-2.05b# cat scr.pl
>#!/usr/bin/perl
>
>$d=`date -v -1d '+%h %d'`;$ date -v -1d '+%h %d'
date: invalid option -- v
Попробуйте `date --help' для получения более подробного описания.
$ date -1d '+%h %d'
date: invalid option -- 1
Попробуйте `date --help' для получения более подробного описания.
$ date -d '+%h %d'
date: неверная дата `+%h %d'
$ date '+%h %d'
Дек 08
$ date '+%h %d' -1d
date: invalid option -- 1
Попробуйте `date --help' для получения более подробного описания.
$ date '+%h %d' \-1d
date: invalid option -- 1
Попробуйте `date --help' для получения более подробного описания.
$ date '+%h %d' "-1 day"
date: invalid option -- 1
Попробуйте `date --help' для получения более подробного описания.
$ date '+%h %d' -d "-1 day"
Дек 07
abm@abm:~$ LANG=C date '+%h %d' -d "-1 day"
Dec 07
$ _Уф, показалось.
>($month,$date) = split(/ /, $d);
>$date=~s/0//g;
>
>$sfile="file.txt";
>$gfile="file.N.txt";
>
>#$month="Dec";
>#$date="7";
>
>$ndate="$month $date";Э-эгм,
$ndate=$d~s/ 0/ /;
не проще?>system("grep \"$ndate\" $sfile >$gfile");
Сообщения об ошибках какие-нибудь?
system("grep \"$ndate\" $sfile >$gfile 2>./errors.txt");
>нужно выгребать все записи за Dec 7. Скрипт выгребает все.
>где засада?Не знаю я перла -- может и поможет другой кто...
>[оверквотинг удален]
>$ date '+%h %d' "-1 day"
>date: invalid option -- 1
>Попробуйте `date --help' для получения более подробного описания.
>$ date '+%h %d' -d "-1 day"
>Дек 07
>abm@abm:~$ LANG=C date '+%h %d' -d "-1 day"
>Dec 07
>$ _
>
>Уф, показалось.вы используюте date под линухом. Они по разному работают в разных осях.
Используйте print на этапе отладке как можно чаще. Распечатывайте содержимое всех переменных, что у вас в итоге в переменных $month и $date? Что распечатается если строку отдаваемую в system() вывести на экран? Помните что system() неявно вызывает sh для обработки входной строки, что может влиять на интерпретацию строки.
Так легче вам искать места где что-то неправильно работает.
>Используйте print на этапе отладке как можно чаще. Распечатывайте содержимое всех переменных,
>что у вас в итоге в переменных $month и $date? Что
>распечатается если строку отдаваемую в system() вывести на экран? Помните что
>system() неявно вызывает sh для обработки входной строки, что может влиять
>на интерпретацию строки.
>Так легче вам искать места где что-то неправильно работает.спасибо за ответ.
именно так и делаю при отладке.вот смотрите:
#!/usr/bin/perl
$d=`date -v -1d '+%h %d'`;
($month,$date) = split(/ /, $d);#$month="Dec";
#$date="7";$sfile="file.txt";
$gfile="file.N.txt";print "$month";
print "$date";$date=~s/0//g;
print "$date";$ndate="$month $date";
print "$ndate";system("grep '$ndate' $sfile >$gfile");
на выходе получаю
Dec07
7
Dec 7а также файл file.N.txt идентичный файлу file.txt :)
>system("grep '$ndate' $sfile >$gfile");чего будет если напечатать:
print "grep '$ndate' $sfile >$gfile";
или
print "grep \"$ndate\" $sfile >$gfile";
?
>>system("grep '$ndate' $sfile >$gfile");
>
>чего будет если напечатать:
>print "grep '$ndate' $sfile >$gfile";
>или
>print "grep \"$ndate\" $sfile >$gfile";
>?то же самое на выходе что и во входном файле.
пофиг какие ковычки использовать.
>>>system("grep '$ndate' $sfile >$gfile");
>>
>>чего будет если напечатать:
>>print "grep '$ndate' $sfile >$gfile";
>>или
>>print "grep \"$ndate\" $sfile >$gfile";
>>?
>
>то же самое на выходе что и во входном файле.
>пофиг какие ковычки использовать.м.., проверяем количество пробелов в выходном файле и количество пробелов в $ndate между месяцем и числом
попробуй вот так:printf("Mon Dec 7 10:54:20 2008");
printf("Mon Dec 7 10:55:30 2008");
printf("Mon Dec 7 10:56:30 2008");
>вот строки из скрипта:
>$ndate="$month $date";
>system("grep \"$ndate\" $sfile >$gfile");Я бы попробовал
system("grep '$ndate' $sfile >$gfile");
>>вот строки из скрипта:
>>$ndate="$month $date";
>>system("grep \"$ndate\" $sfile >$gfile");
>
>Я бы попробовал
>
>system("grep '$ndate' $sfile >$gfile");есть всетаки умные люди - которые представлют что делает команда )))
а автор видимо даже не пытался ее в консоли исполнить и понять что она делает )))
>[оверквотинг удален]
>>>$ndate="$month $date";
>>>system("grep \"$ndate\" $sfile >$gfile");
>>
>>Я бы попробовал
>>
>>system("grep '$ndate' $sfile >$gfile");
>
>есть всетаки умные люди - которые представлют что делает команда )))
>а автор видимо даже не пытался ее в консоли исполнить и понять
>что она делает )))прекращай срать в ветке, если нечего предложить
>[оверквотинг удален]
>>>
>>>Я бы попробовал
>>>
>>>system("grep '$ndate' $sfile >$gfile");
>>
>>есть всетаки умные люди - которые представлют что делает команда )))
>>а автор видимо даже не пытался ее в консоли исполнить и понять
>>что она делает )))
>
>прекращай срать в ветке, если нечего предложитьсрешь ты - я коментирую, не груби, да не послан будешь!
если для тебя ламера строки:
grep temp1 temp2 file
и
grep "temp1 temp2" file
единтичны, поздравляю! ты реально ламер!
man grep
>[оверквотинг удален]
>>прекращай срать в ветке, если нечего предложить
>
>срешь ты - я коментирую, не груби, да не послан будешь!
>
>если для тебя ламера строки:
>grep temp1 temp2 file
>и
>grep "temp1 temp2" file
>единтичны, поздравляю! ты реально ламер!
>man grepmopsiso в ветке ниже очень хорошо охарактеризовал таких людей как ты:) отдыхай короче.
>[оверквотинг удален]
>>
>>если для тебя ламера строки:
>>grep temp1 temp2 file
>>и
>>grep "temp1 temp2" file
>>единтичны, поздравляю! ты реально ламер!
>>man grep
>
>mopsiso в ветке ниже очень хорошо охарактеризовал таких людей как ты:) отдыхай
>короче.как я? а чо я? у меня то по крайней мере хватает ума с grep разобраться ))))
>[оверквотинг удален]
>>>и
>>>grep "temp1 temp2" file
>>>единтичны, поздравляю! ты реально ламер!
>>>man grep
>>
>>mopsiso в ветке ниже очень хорошо охарактеризовал таких людей как ты:) отдыхай
>>короче.
>
>как я? а чо я? у меня то по крайней мере хватает
>ума с grep разобраться ))))никто ведь не сомневается в твоей гениальности :)
>[оверквотинг удален]
>>>>единтичны, поздравляю! ты реально ламер!
>>>>man grep
>>>
>>>mopsiso в ветке ниже очень хорошо охарактеризовал таких людей как ты:) отдыхай
>>>короче.
>>
>>как я? а чо я? у меня то по крайней мере хватает
>>ума с grep разобраться ))))
>
>никто ведь не сомневается в твоей гениальности :)но разговор то про твою как раз )))))))))
>[оверквотинг удален]
>>>>
>>>>mopsiso в ветке ниже очень хорошо охарактеризовал таких людей как ты:) отдыхай
>>>>короче.
>>>
>>>как я? а чо я? у меня то по крайней мере хватает
>>>ума с grep разобраться ))))
>>
>>никто ведь не сомневается в твоей гениальности :)
>
>но разговор то про твою как раз )))))))))Слушай, да ты я смотрю в каждой ветке срешь, ой извини комментируешь :)))
не надоело? практически сплошной флуд. и хватает же времени и сил? просто поражаюсь... счастливчик...
>[оверквотинг удален]
>>>>ума с grep разобраться ))))
>>>
>>>никто ведь не сомневается в твоей гениальности :)
>>
>>но разговор то про твою как раз )))))))))
>
>Слушай, да ты я смотрю в каждой ветке срешь, ой извини комментируешь
>:)))
>не надоело? практически сплошной флуд. и хватает же времени и сил? просто
>поражаюсь... счастливчик...каенчно хватает - я же разобрался с grep'ом )
>если для тебя ламера строки:
>grep temp1 temp2 file
>и
>grep "temp1 temp2" file
>единтичны, поздравляю! ты реально ламер!
>man grepman grep ни разу не поможет в понимании того как работают кавычки в шелле при передаче параметров командной строки в запускаемую программу. В том числе и разницу между одинарными и двойными кавычками.
Тут следует изучать man bash, ну или какое-нить руководство по шеллу для новичков и не только.
>[оверквотинг удален]
>>и
>>grep "temp1 temp2" file
>>единтичны, поздравляю! ты реально ламер!
>>man grep
>
>man grep ни разу не поможет в понимании того как работают кавычки
>в шелле при передаче параметров командной строки в запускаемую программу.
>В том числе и разницу между одинарными и двойными кавычками.
>Тут следует изучать man bash, ну или какое-нить руководство по шеллу для
>новичков и не только.ошибаетесь уважаемый! еще как поможет!
man grep ... в первых строках
SYNOPSIS
grep [options] PATTERN [FILE...]
grep [options] [-e PATTERN | -f FILE] [FILE...]
по крайней мере имея даже очень скудные познания в sh/bash можно сообразить что второй параметр паттерна будет схаван грипом как имя файла ...
просто не привыкли люди работать головой, все делается по типу винды "yes" "no" "ignore".
То что есть четвертая и пятая, и другие кнопки никто не догодавыется, потому как не умеют ни читать ни думать. И увы, не вы, не я им не поможем ...
>[оверквотинг удален]
> grep [options] [-e PATTERN |
>-f FILE] [FILE...]
>по крайней мере имея даже очень скудные познания в sh/bash можно сообразить
>что второй параметр паттерна будет схаван грипом как имя файла ...
>
>просто не привыкли люди работать головой, все делается по типу винды "yes"
>"no" "ignore".
>То что есть четвертая и пятая, и другие кнопки никто не догодавыется,
>потому как не умеют ни читать ни думать. И увы, не
>вы, не я им не поможем ...пример скрипта и текстового файла - я дал выше. покажи нам всем что ты умеешь не только языком чесать.
>пример скрипта и текстового файла - я дал выше. покажи нам всем
>что ты умеешь не только языком чесать.гыгы ламерок решил на слабо взять? ок ) нелюблю я правдо это дело ... но фигли - скора новый год
bash-2.05b# cat file.txt
Mon Dec 1 10:49:40 2008
Mon Dec 1 10:49:43 2008
Mon Dec 2 10:49:45 2008
Mon Dec 3 10:51:10 2008
Mon Dec 3 10:51:40 2008
Mon Dec 3 10:52:10 2008
Mon Dec 7 10:54:20 2008
Mon Dec 7 10:55:30 2008
Mon Dec 7 10:56:30 2008
Mon Dec 8 10:57:10 2008
Mon Dec 8 10:58:15 2008
Mon Dec 8 10:58:12 2008нужно выгребать все записи за Dec 7.
как два байта написать ...
awk '{if ($2 == "Dec" && $3 == 7) print $0}' data
>[оверквотинг удален]
>Mon Dec 8 10:57:10 2008
>Mon Dec 8 10:58:15 2008
>Mon Dec 8 10:58:12 2008
>
>нужно выгребать все записи за Dec 7.
>
>как два байта написать ...
>
>awk '{if ($2 == "Dec" && $3 == 7) print $0}' data
>угу, все с тобой ясно. повеселил:))) посмотрел хотя бы что требовалось-то. придурок конченный.
>[оверквотинг удален]
>>
>>нужно выгребать все записи за Dec 7.
>>
>>как два байта написать ...
>>
>>awk '{if ($2 == "Dec" && $3 == 7) print $0}' data
>>
>
>угу, все с тобой ясно. повеселил:))) посмотрел хотя бы что требовалось-то. придурок
>конченный.у ьы какой )) а где четкая формулировка задачи? ))
а то я кмо "чето както сделать" нихера не вижу ))
>
>ошибаетесь уважаемый! еще как поможет!
>man grep ... в первых строках
>SYNOPSIS
> grep [options] PATTERN [FILE...]
> grep [options] [-e PATTERN |
>-f FILE] [FILE...]
>по крайней мере имея даже очень скудные познания в sh/bash можно сообразить
>что второй параметр паттерна будет схаван грипом как имя файла ...вот эти скудные познания и включают знание или хотя бы догадки о волшебных кавычках :)
>просто не привыкли люди работать головой, все делается по типу винды "yes"
>"no" "ignore".
>То что есть четвертая и пятая, и другие кнопки никто не догодавыется,
>потому как не умеют ни читать ни думать. И увы, не
>вы, не я им не поможем ...но не стоит их отпугивать, нежнее надо, еще нежнее :))
>>вот строки из скрипта:
>>$ndate="$month $date";
>>system("grep \"$ndate\" $sfile >$gfile");
>
>Я бы попробовал
>
>system("grep '$ndate' $sfile >$gfile");пробовал и так тоже.
Резутьтат - выводит все записи из файла (см. выше).Спасибо.
>Здравствуйте.
>Помогите плиз сделать чтобы перл выгребал $ndate из $sfile, а не $month
>и $date.
>
>вот строки из скрипта:
>$ndate="$month $date";
>system("grep \"$ndate\" $sfile >$gfile");
>
>Заранее спасибо.тема закрыта. воспользоваться советом NuINu.
Спасибо.
>[оверквотинг удален]
>>и $date.
>>
>>вот строки из скрипта:
>>$ndate="$month $date";
>>system("grep \"$ndate\" $sfile >$gfile");
>>
>>Заранее спасибо.
>
>тема закрыта. воспользоваться советом NuINu.
>Спасибо.бывает. ;) у меня сколько раз такое было.
я тогда уж уточню совет vic-а
так вот. я печатаю не просто переменные
а еще заключаю их в кавычки.
тогда стразу видно, что не так.