The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"Очень нужна ваша помощь в скрипте"
Вариант для распечатки Архивированная нить - только для чтения! 
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"Очень нужна ваша помощь в скрипте"
Сообщение от gexa emailИскать по авторуВ закладки on 21-Окт-04, 17:38  (MSK)
Есть файл1 - строки, есть файл2 - строки.
Нужно сформировать файл3 в котором будет файл1,
но будут отсутствовать строки из файла2. Т.е если в файле1
встречается строчка присутствующая в файле2, то ее удалить.
Помогите пожалуйста, как это сделать на перле или в баше.
Спасибо.
  Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "Очень нужна ваша помощь в скрипте"
Сообщение от hatta Искать по авторуВ закладки(ok) on 21-Окт-04, 18:25  (MSK)
если файлы не сортированны, то можно так:

#!/usr/bin/perl -w
use warnings;
use strict;

open(FILE1, "<file1");
open(FILE2, "<file2");
open(FILE3, ">file3");

my @f2 = <FILE2>;
my %reg;
foreach (@f2) {
  $reg{$_} = 1;
}

my @f1 = <FILE1>;
foreach (@f1) {
  print FILE3 $_ unless exists $reg{$_};
}

  Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "Очень нужна ваша помощь в скрипте"
Сообщение от gexa emailИскать по авторуВ закладки on 22-Окт-04, 09:19  (MSK)
>если файлы не сортированны, то можно так:
>
>#!/usr/bin/perl -w
>use warnings;
>use strict;
>
>open(FILE1, "<file1");
>open(FILE2, "<file2");
>open(FILE3, ">file3");
>
>my @f2 = <FILE2>;
>my %reg;
>foreach (@f2) {
>  $reg{$_} = 1;
>}
>
>my @f1 = <FILE1>;
>foreach (@f1) {
>  print FILE3 $_ unless exists $reg{$_};
>}

Огромное спасибо,
а как можно подправить этот скрипт, чтобы искала не по полному совпадению,
а по частичному вхождению строки файла2 в файле1?
Заранее благодарен.

  Рекомендовать в FAQ | Cообщить модератору | Наверх

3. "Очень нужна ваша помощь в скрипте"
Сообщение от mirya emailИскать по авторуВ закладки on 23-Окт-04, 16:58  (MSK)
#!/usr/bin/perl

# если я правильно понял вопрос, теперь нужны строки
# из файла2, к-рые частично входят в некую строку
# файла 1
#

open(FILE1, "<file1");
open(FILE2, "<file2");
open(FILE3, ">file3");

{
  local $/;
  $f1 = <FILE1>;
}
close FILE1;

while (<FILE2>) {
  print FILE3 $_ if index($f1, $_) > 0;
}
close FILE1;
close FILE3;

  Рекомендовать в FAQ | Cообщить модератору | Наверх


Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру