From: |
Ruslan Suleimanov 2:467/888 |
04 Feb 2020 11:46 +0200 |
To: |
Alexey Korotkov 2:455/19.2 |
|
Subject: |
скрипт для сравнений
|
Привет, Alexey!
Ответ на сообщение Alexey Korotkov (2:455/19.2) к Ruslan Suleimanov,
написанное 02 фев 20 в 23:26:
AK> Hello, Ruslan Suleimanov.
AK> On 2/2/20 19:49 you wrote:
RS>> Есть первоначально два текстовых файла(файл 1 и файл 2) и в
RS>> каждом файле какоето количество строк с разными словами, так вот
RS>> необходи взять сперва значение первой строки файла 1 и сравнить с
RS>> каждой строкой файла 2, и если значения не совпадает тогда это
RS>> слово из файла1 поместить в файл3, а если есть совпадение тогда
RS>> поместить в файл4, и так сравнивать каждую строку файла1 со всеми
RS>> строками файла2. HELP ! :)
AK> Сделать хэш с ключами-словами из первого файла, значение не важно. При
AK> чтении второго файла определять есть ли в хэше элемент с таким ключём.
AK> Есть - писать его в файл 3, нет - в файл 4. Так?
в хэше это вообще круто будет, можно и хешем :) а можно просто как текст.
Вот например:
файл1.txt
в столбик идут слова:
COOK
BOOK
HELLO
FAT
BOX
FOX
и в файл2.txt
в стобик идут слова:
COOK
BOOK
FAT
FOX
берем слово COOK и проверяем со всеми словами которые в столбик файл2.txt и
если видим есть такое слово тогда помещаем его в файл4.txt и т.д
теперь видим что слово HELLO и BOX не встречается в файл2.txt тогда эти слова
помешаем стобиком в файл3.txt
Так :)
WBR, Ruslan Suleimanov.
Telegram: @rsuleimanov
From: |
Ruslan Suleimanov 2:467/888 |
01 Dec 2019 20:26 +0200 |
To: |
All |
|
Subject: |
test
|
Hello All!
test?
Ruslan
Telegram @rsuleimanov
From: |
Ruslan Suleimanov 2:467/888 |
02 Dec 2019 06:18 +0200 |
To: |
Eugene Grosbein grosbein.net |
|
Subject: |
test
|
Hello Eugene!
Monday December 02 2019 03:38, you wrote to me:
EG> 01 дек. 2019, воскресенье, в 19:26 NOVT, Ruslan Suleimanov написал(а):
RS>> Hello All!
RS>> test?
EG> ормально.
атлично!:)
Ruslan
Telegram @rsuleimanov
From: |
Eugene Grosbein grosbein.net |
22 Jan 2019 05:56 +0200 |
To: |
Mikhail Stakhanov 2:5020/932.1 |
|
Subject: |
perl 5.28.1
|
21 янв. 2019, понедельник, в 19:56 NOVT, Mikhail Stakhanov написал(а):
MS> * Скопировано в ru.perl
MS> приплыл не собирается на роутере:
MS> ====
MS> Checking your choice of C compiler and flags for coherency...
MS> I've tried to compile and run the following simple program:
MS> #include
MS> int main() { printf("Ok\n"); return(0); }
MS> I used the command:
MS> gcc -o try -O2 -fwrapv -fno-strict-aliasing -pipe
MS> -fstack-protector-strong -fstack-protector-strong try.c -lpthread -lgdbm
-ldb
MS> -lm -lcrypt -lutil -lc
MS> ./try
MS> and I got the following output:
MS> /opt/bin/ld: warning: libc.so.0, needed by /usr/lib/libgdbm.so, may
conflict
MS> with libc.so.6
MS> /opt/bin/ld: warning: libc.so.0, needed by /usr/lib/libgdbm.so, may
conflict
MS> with libc.so.6
MS> /opt/bin/ld: errno@@GLIBC_PRIVATE: TLS definition in
MS>
/tmp/mnt/My_Passport/asusware.arm/bin/../lib/gcc/arm-openwrt-linux-gnueabi/6.3.0/libc.so.6
MS> section .tbss mismatches non-TLS definition in /opt/lib/libc.so.0 section
.bss
MS> /opt/lib/libc.so.0: error adding symbols: Bad value
MS> collect2: error: ld returned 1 exit status
MS> I can't compile the test program.
MS> You have a BIG problem. Shall I abort Configure [y]
MS> Ok. Stopping Configure.
MS> ====
MS> Что посоветуете ?
С этим тебе не в ru.perl, а в линуксовую эху, потому что проблема
это не перла, а твоего линуксового окружения, которое не может
собрать элементарного приложения с использованием libgdbm.
Eugene
--
Поэты - страшные люди. У них все святое.
From: |
Mikhail Stakhanov 2:5020/932.1 |
09 Apr 2019 22:24 +0300 |
To: |
Mikhail Stakhanov 2:5020/932.1 |
|
Subject: |
кодировка
|
Здравствуйте, Mikhail!
Ответ на сообщение Mikhail Stakhanov (2:5020/932.1) к Eugene Grosbein,
написанное 09 апр 19 в 21:30:
MS> Под актив перл все работает:
MS> for (my $i = 0; $i < scalar(@files); $i++) {
MS> ($parts[0], $parts[1]) = ($1,$2) if ($files[$i] =~
MS> /^(.{1})(.*)/);
MS> open FFile, "<", "$index_dir"."str_"."$parts[0]".".idx" or die
MS> "ssf"; \- открываем файл на начальную букву запроса, если первый
MS> символ ? или *, то печалька, пока не реализуем :)
MS> %dirs = read_config("$index_dir"."dirs.lst");
MS> my $d_found = ();
MS> my $current = ();
MS> $files[$i] =~ s/\./\\.{1}/g if ($files[$i] =~ /\./);
MS> $files[$i] =~ s/\?/\.{1}/g if ($files[$i] =~ /\?/);
MS> $files[$i] =~ s/\*/\.\*/g if ($files[$i] =~ /\*/);
MS> while () {
MS> if ($_ =~ /^$files[$i]/i) { \- Вот это место, (файл)
MS> (индекс каталога) формат файла.
MS> ($current) = $_ =~ /^(.*?)\s/i;
MS> ($d_found) = $_ =~ /\s(.*)$/i;
MS> foreach my $key (sort keys %dirs) {
MS> if ($dirs{$key} == $d_found) { \- %dirs =
MS> { [путь] => [номер] }
MS> $files_found[$j] =
MS> $key."/".$current;
MS> }
MS> }
MS> print "$files_found[$j]";
MS> $j++;
MS> }
MS> }
MS> close FFile;
MS> }
поймал ошибку z2daily.093 != z2daily.093 т.к. "." любой произвольный символ и
он должен иметь модификатор ? (правильно ?) и соответственно z2daily[Любой
символ]093 должно подходить под z2daily.{1}093, но если мы делаем
z2daily\.{1}093 в files[$i] то работает.
Так ?
Всего наилучшего, Mikhail
From: |
Gennadij Pastuhov 2:5036/26 |
07 Apr 2019 03:16 +0300 |
To: |
Mikhail Stakhanov 2:5020/932.1 |
|
Subject: |
soft hash
|
Рад всех приветствовать! А особенно - Mikhail!
Суббота апреля 06 19 18:39 Mikhail Stakhanov писал к All:
MS> Помогите хешь отсортировать:
MS> $VAR1 = {
MS> 'ap190325.zip' => [
MS> '2'
MS> ],
MS> 'z2daily.080' => [
MS> '8'
MS> ],
MS> 'files.bbs' => [
MS> '1',
MS> '2',
MS> '3',
MS> '4',
MS> '5',
MS> '6',
MS> '7',
MS> '8'
MS> ],
MS> 'z2daily.074' => [
MS> '8'
MS> ],
MS> 'ap190403.zip' => [
MS> '2'
MS> ]
MS> };
MS> Хешь вида {key}[0..n] (имя файла и номер каталога). Нужна сортировка
MS> по {key}. Хотя можно выделять массив на начальную букву, его
MS> сортировать и запихивать в файл. Но всеравно в качестве развития как
MS> по {key} такой хеш сортируется ?
Ты же уже написал: sort keys %hash
... Jonny wanna live
From: |
Eugene Grosbein grosbein.net |
16 Apr 2019 14:36 +0300 |
To: |
Mikhail Stakhanov 2:5020/932.1 |
|
Subject: |
strif
|
15 апр. 2019, понедельник, в 18:31 NOVT, Mikhail Stakhanov написал(а):
MS> Можете потестировать ?
Тестировать я не могу, мне не на чем, но даже если бы и мог:
$ perl -cw strif.pl
Can't locate File/Find/Rule.pm in @INC (you may need to install the
File::Find::Rule module) (@INC contains:
/usr/local/lib/perl5/site_perl/mach/5.26 /usr/local/lib/perl5/site_perl
/usr/local/lib/perl5/5.26/mach /usr/local/lib/perl5/5.26) at strif.pl line 10.
BEGIN failed--compilation aborted at strif.pl line 10.
Типа намёк.
Eugene
--
Господа Действительного Положения Вещей предохраняют себя от голода своим
богатством, от общественного мнения - тайной и анонимностью,
от частной критики - законами против клеветы и тем, что средства связи
находятся в их распоряжении. (Hорберт Винер)
From: |
Gennadij Pastuhov 2:5036/26 |
28 Jan 2019 17:17 +0200 |
To: |
All |
|
Subject: |
+key => +value
|
Рад всех приветствовать! А особенно - All!
Иногда встречаю в коде выражения вида:
{
-key => "value",
}
или
{
response => '+response',
}
В доке что-то не могу найти, как это понимать. Помогите, плз!
... Jonny wanna live
From: |
Brother Rabbit 2:460/5858 |
31 Mar 2019 23:40 +0300 |
To: |
Mikhail Stakhanov 2:5020/932.1 |
|
Subject: |
freq скрипт
|
Hi, Mikhail!
31 мар 19 22:29, Mikhail Stakhanov -> Eugene Grosbein:
MS> Спасибо работает.
=== Import Windows Clipboard Start ===
sub getBSOname
{
my ( $addr, $out ) = @_;
$addr =~ /([\d]+)\:([\d]+)\/([\d]+)\.?([\d]*)/;
my ( $zone, $net, $node, $point ) = ( $1, $2, $3, $4 );
$bsoname = $out;
$bsoname .= ".".sprintf("%03x", $zone) if $zone != $defaultzone;
mkdir $bsoname unless -e $bsoname;
$bsoname .= "\\" if $bsoname =~ /\\/;
$bsoname .= "\/" if $bsoname =~ /\//;
$bsoname .= sprintf("%04x", $net) . sprintf("%04x", $node);
if ( defined ( $point ) && $point != 0 ) {
mkdir $bsoname unless -e $bsoname;
$bsoname .= "\\" if $bsoname =~ /\\/;
$bsoname .= "\/" if $bsoname =~ /\//;
$bsoname .= sprintf( "%08x", $point );
}
return $bsoname;
}
=== Import Windows Clipboard End ===
$freqfilename = getBSOname($address, '/home/fido/out/fidonet') . '.req';
Требуется глобальная переменная $defaultzone. Обычно берется из конфига или
указывается явно прямо в скрипте.
Have nice nights.
Brother Rabbit.
From: |
Eugene Grosbein grosbein.net |
06 Apr 2019 09:09 +0300 |
To: |
Brother Rabbit 2:460/5858 |
|
Subject: |
регулярные выражения.
|
05 апр. 2019, пятница, в 09:09 NOVT, Brother Rabbit написал(а):
EG>>>> (undef, $echo, $desc) = $_ =~ /^(Hold)?,(.*?),(.*?),+/);
BR>>> Зачем? Hас же совсем не интересует холд или нет.
EG>> undef как раз и означает, что нас первая группа не интересует.
BR> Да. Вопрос был в том, зачем ее вообще выделять в таком случае в скобки?
Скобки тут ради знака вопроса, чтобы он применялся ко всей группе.
EG>> (если исправить баги дальше в круглых скобках, где ты потерял звёзды),
BR> Это опечатка. А не лучше там плюсики вместо звездочек? Или там реально
может
BR> ниичего не быть?
Это не ко мне вопрос, я с такими файлами не работаю.
EG>> читабельность хуже, чем с круглыми скобками - новичка может сбить с
EG>> толку, да и остальным потребуется сначала сообразить, в чём тут финт.
BR> Мне кажется, что читается как раз проще всего, когда написано "не
запятая",
BR> понятно, что нужен текст меджу запятыми.
Это несколько субъективно, конечно, кому как легче читается.
Лично мне .* читается легче любой другой нетривиально конструкции.
EG>> Есть у Perl слабое место - легко писать write-only code :-)
EG>> Hо не надо поддаваться.
BR> Да. Потом и сам прочесть не сможешь. ;)
Во-во.
Eugene