| 
mmCleric
 | 
 
| 
 | 
 
| 
  
 | 
 
| 
 
 | 
 
 
 | 
 
| 
Рег.:  19.09.2004
 | 
 
| 
Сообщений: 459
 | 
 
| 
Из:  Здесь
 | 
 
| 
Рейтинг: 263
 | 
 
 
 | 
  
Re: [sed/awk/?]как выделить слово из строки, идущее после заданного сл
 
 [re: mk52]
 
 
 
 
03.11.2007 17:00 
 | 
 | 
 
 
 | 
 
В том, что одноразовые задачи надо решать простыми способами, а не писать программы по 10 строк.
  Что если спорить про количество реализаций, стабильных версий перла существует штук где-то 12, начиная с 5.005 (хотя твой код вроде на любой будет работать). А sed документирован в POSIX.
  Что твоя программа не откроет файл с именем '0', угадай почему   (лучше уж было <> использовать... Что как раз и делает -n, кстати. Так что мое решение тоже заменяет и cat, и grep.)
  Короче,  KISS.
  PS. Я не защищаю sed, и сам бы в данном случае перлом воспользовался, кстати. Как раз из-за необходимости помнить, что скобки надо экранировать.
 
 
 
 
  
 | 
 
-Ofun  |  
 
 | 
| 
Bachan
 | 
 
| 
god's pee
 | 
 
| 
  
 | 
 
| 
 
 | 
 
 
 
 | 
 
| 
Рег.:  26.10.2002
 | 
 
| 
Сообщений: 37551
 | 
 
| 
 | 
 
| 
Рейтинг: 5335
 | 
 
 
 | 
  
Re: [sed/awk/?]как выделить слово из строки, идущее после заданного сл
 
 [re: mmCleric]
 
 
 
 
03.11.2007 17:30 
 | 
 | 
 
 
 | 
 
тут обычно рулит то, чем чаще пользуешься. я такие седы раз по пять в день пишу, когда чо-нибудь ищу в коде. %)
 
 
  
 | 
 
я АЭС фачил в эсс!  |  
 
 | 
| 
mk52
 | 
 
| 
member
 | 
 
| 
  
 | 
 
| 
 
 | 
 
 
 | 
 
| 
Рег.:  11.05.2007
 | 
 
| 
Сообщений: 116
 | 
 
| 
 | 
 
| 
Рейтинг: 65
 | 
 
 
 | 
  
Re: [sed/awk/?]как выделить слово из строки, идущее после заданного сл
 
 [re: mmCleric]
 
 
 
 
03.11.2007 17:42 
 | 
 | 
 
 
 | 
 
Quote:
  А sed документирован в POSIX.
 
 
   он может быть и документирован, но какие-то различия между реализацией GNU и в BSD вроде есть
  [quote] Что твоя программа не откроет файл с именем '0', угадай почему лучше уж было <> использовать [quote]
  скажет что нет такого файла и штатно завершится, и правильно сделает 0 это не имя а значение файлового дескриптора STDIN ; )  почему cat | filter.pl лучше filter.pl filename?
  
 | 
 
 
 | 
| 
mmCleric
 | 
 
| 
 | 
 
| 
  
 | 
 
| 
 
 | 
 
 
 | 
 
| 
Рег.:  19.09.2004
 | 
 
| 
Сообщений: 459
 | 
 
| 
Из:  Здесь
 | 
 
| 
Рейтинг: 263
 | 
 
 
 | 
  
Re: [sed/awk/?]как выделить слово из строки, идущее после заданного сл
 
 [re: mk52]
 
 
 
 
03.11.2007 19:13 
 | 
 | 
 
 
 | 
 
Quote:
 
  он может быть и документирован, но какие-то различия между реализацией GNU и в BSD вроде есть
 
 
 
   Думаю, они POSIX-совместимые. Ну это не так важно, я уже говорил, что тоже предпочел бы перл в данной задаче.
 
 Quote:
 
 
 Quote:
 
  Что твоя программа не откроет файл с именем '0', угадай почему лучше уж было <> использовать
 
 
 
  
  скажет что нет такого файла и штатно завершится, и правильно сделает 0 это не имя а значение файлового дескриптора STDIN ; )
 
 
 
   Эээ. Ошибаешься.
 code: 
mmcleric@mmcleric-desktop:~/temp$ echo 'qewr' >0
mmcleric@mmcleric-desktop:~/temp$ ls -l 0
-rw-r--r-- 1 mmcleric mmcleric 5 2007-11-03 19:05 0
mmcleric@mmcleric-desktop:~/temp$ perl -e '$i = $ARGV[0]; print "File: $i\n"; open INP, $i or die "Cant open $i"; while (<INP>) {print}' 0
File: 0
qewr
mmcleric@mmcleric-desktop:~/temp$ perl -e '$i = $ARGV[0]; print "File: $i\n"; open INP, $i ||  die "Cant open $i"; while (<INP>) {print}' 0
File: 0
Cant open 0 at -e line 1.
  
  Чтобы указать файловый дескриптор по номеру, надо так писать:
 Quote:
  If you specify '<&=X', where "X" is a file descriptor number or a filehandle , then Perl will do an equivalent of C's "fdopen" of that file descriptor (and not call dup(2))
 
 
  
 
 Quote:
  почему cat | filter.pl лучше filter.pl filename?
 
 
   Потому что filter.pl, написанный с использованием <>, будет работать и для cat | filter.pl, и для filter.pl filename, и для filter.pl file1 file2, и для filter.pl *.log.
 
 
  
 | 
 
-Ofun  |  
 
 | 
| 
mk52
 | 
 
| 
member
 | 
 
| 
  
 | 
 
| 
 
 | 
 
 
 | 
 
| 
Рег.:  11.05.2007
 | 
 
| 
Сообщений: 116
 | 
 
| 
 | 
 
| 
Рейтинг: 65
 | 
 
 
 | 
  
Re: [sed/awk/?]как выделить слово из строки, идущее после заданного сл
 
 [re: mmCleric]
 
 
 
 
03.11.2007 19:43 
 | 
 | 
 
 
 | 
 
Quote:
  Quote:Что твоя программа не откроет файл с именем '0', угадай почемулучше уж было <> использоватьскажет что нет такого файла и штатно завершится, и правильно сделает0 это не имя а значение файлового дескриптора STDIN ; )Эээ. Ошибаешься.
 
 
   понял о чем ты да ну и хрен с ним что не откроется - других что-ли файлов мало  : D
  
 | 
 
 
 | 
| 
DizzyDen
 | 
 
| 
достаточно добр
 | 
 
| 
  
 | 
 
| 
 
 | 
 
 
 
 | 
 
| 
Рег.:  04.03.2003
 | 
 
| 
Сообщений: 51427
 | 
 
| 
Из:  http://лакалхвост
 | 
 
| 
Рейтинг: 13545
 | 
 
 
 | 
  
Re: [sed/awk/?]как выделить слово из строки, идущее после заданного сл
 
 [re: Bachan]
 
 
 
 
06.11.2007 13:13 
 | 
 | 
 
 
 | 
 
Quote:
  ну замени на [a-zA-Z0-9]
 
 
  
 Quote:
  For  example, [[:alnum:]] means [0-9A-Za-z], except the latter form depends upon the POSIX locale and the ASCII  character  encoding, whereas the former is independent of locale and  character set.
 
 
      
 
 
  
 | 
 
If stateless paradigm is good for your code, why shouldn't it be for your country?  |  
 
 |