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? |
|