nataraj: (Default)
[personal profile] nataraj
perl -n -e "s/\s//;chop;print ;print ','" <edu.txt

Без единого гвоздя единой переменной...

Date: 2007-01-30 01:33 pm (UTC)
From: [identity profile] what-me.livejournal.com
perl -0777pe "y.\n .,." edu.txt

Date: 2007-01-30 02:10 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Толи я не настоящий сварщик, то-ли это полный бред... ;-)

Date: 2007-01-30 02:13 pm (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Да... Видимо я не настоящий сварщик...

Тока оно по две запятые добавляет...
А как работает -- так и не понял... ;-)

Date: 2007-01-30 02:47 pm (UTC)
From: [identity profile] what-me.livejournal.com
А что оригинальное решение должно было делать? Объединить через запятые все строки из файла в одну?
Непонятно зачем удалять по одному пробельному символу из каждой строки и зачем запятая в самом конце. И какой формат файла edu.txt

Чтоб посмотреть как работает можно сказать
perl -MO=Deparse -0777pe "y.\n .,." edu.txt

Date: 2007-02-04 09:20 am (UTC)
ext_613079: Default userpic (Default)
From: [identity profile] shaplov.livejournal.com
Объединить через запятые все строки из файла в одну?
Угу...

Непонятно зачем удалять по одному пробельному символу из каждой строки
Потому что он там есть ;-)

и зачем запятая в самом конце
Потому что мне не лень ее потом удалить ;-)

И какой формат файла edu.txt
Это перенаправленный в файл вывод запроса SELECT ITEM_ID FROM ITEM WHERE=....
Мне единоразово нужен был список идов через запятую...

Оно таки получается через две запятые, ибо
=====================
$ perl -MO=Deparse -0777pe "y.\n .,." edu.txt
BEGIN { $/ = undef; $\ = undef; }
LINE: while (defined($_ = )) {
tr/\n /,/;
}
continue {
print $_;
}
====================
и пробел и перевод строки заменяется на запятую...

Таки нужный эффект достигается путем perl -0777pe "y.\n.,." edu.txt

Тока я все равно не понимаю что это за такая странная нотация y.\n.,. Какой мануал читать?

Date: 2007-02-05 09:28 am (UTC)
From: [identity profile] what-me.livejournal.com
тогда perl -0777pe "y/\n /,/d" edu.txt пробелы удалит


читать perdoc perlop, начиная с Quote and Quote-like operators
'y' - это второе имя оператора 'tr'
ограничители, обычно прямые слэши, могут быть любыми символами, либо парными скобками, tr/a/b/, tr{a}{b}, tr#a#b# и т.п.


Profile

nataraj: (Default)
Swami Dhyan Nataraj

July 2024

S M T W T F S
 123456
789 10111213
14151617181920
21222324252627
28293031   

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 20th, 2026 03:21 pm
Powered by Dreamwidth Studios