The OpenNET Project / Index page

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

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

"Скрипт по удалению повторений в файле"  
Сообщение от staromsk email(ok) on 19-Июл-06, 08:42 
Имеется большой файл
dgdf www1 abc ...
,jhj, www1 vtr...
hffg www10 ....
het www13 ghj
fgh  www15 dgbg
thrthr www15 srgg
.........
. Подскажите пжлста по написанию скрипта, выбирающего из файла слова с маской "www", чтобы получился неповторяющийся список
www1
www2
www3
www4 и так далее
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

 Оглавление

Сообщения по теме [Сортировка по времени, UBB]


1. "Скрипт по удалению повторений в файле"  
Сообщение от madskull (ok) on 19-Июл-06, 09:01 
>Имеется большой файл
>dgdf www1 abc ...
>,jhj, www1 vtr...
> hffg www10 ....
>het www13 ghj
>fgh  www15 dgbg
>thrthr www15 srgg
>.........
>. Подскажите пжлста по написанию скрипта, выбирающего из файла слова с маской
>"www", чтобы получился неповторяющийся список
> www1
> www2
> www3
> www4 и так далее
>
grep -Po '\bwww\d+' | sort -u

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

2. "Скрипт по удалению повторений в файле"  
Сообщение от staromsk email(ok) on 19-Июл-06, 09:10 
>>Имеется большой файл
>>dgdf www1 abc ...
>>,jhj, www1 vtr...
>> hffg www10 ....
>>het www13 ghj
>>fgh  www15 dgbg
>>thrthr www15 srgg
>>.........
>>. Подскажите пжлста по написанию скрипта, выбирающего из файла слова с маской
>>"www", чтобы получился неповторяющийся список
>> www1
>> www2
>> www3
>> www4 и так далее
>>
>grep -Po '\bwww\d+' | sort -u

grep -Po '\bwww\d+' file1 > file2
grep: The -P option is not supported


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

3. "Скрипт по удалению повторений в файле"  
Сообщение от madskull (ok) on 19-Июл-06, 09:20 

>>>
>>grep -Po '\bwww\d+' | sort -u
>
>grep -Po '\bwww\d+' file1 > file2
>grep: The -P option is not supported

Мораль: указывайте систему.

Тогда
sed 's/^.*\s\(www[0-9]\+\).*/\1/' | sort | uniq

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

4. "Скрипт по удалению повторений в файле"  
Сообщение от staromsk email(ok) on 19-Июл-06, 09:29 
>
>>>>
>>>grep -Po '\bwww\d+' | sort -u
>>
>>grep -Po '\bwww\d+' file1 > file2
>>grep: The -P option is not supported
>
>Мораль: указывайте систему.
>
>Тогда
>sed 's/^.*\s\(www[0-9]\+\).*/\1/' | sort | uniq

прошу прощения. Система debian linux
Но не получается всё равно
sed 's/^.*\s\(www[0-9]\+\).*/\1/' | sort | uniq file1
Вылазит тот же самый список

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "Скрипт по удалению повторений в файле"  
Сообщение от madskull (ok) on 19-Июл-06, 09:33 
>>Тогда
>>sed 's/^.*\s\(www[0-9]\+\).*/\1/' | sort | uniq
>
>прошу прощения. Система debian linux
>Но не получается всё равно
>sed 's/^.*\s\(www[0-9]\+\).*/\1/' | sort | uniq file1
> Вылазит тот же самый список

Эт-та, надо основы учить...
sed 's/^.*\s\(www[0-9]\+\).*/\1/' file1 | sort | uniq
или
cat file1 | sed 's/^.*\s\(www[0-9]\+\).*/\1/' | sort | uniq

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

6. "Скрипт по удалению повторений в файле"  
Сообщение от staromsk email(ok) on 19-Июл-06, 09:41 
>>>Тогда
>>>sed 's/^.*\s\(www[0-9]\+\).*/\1/' | sort | uniq
>>
>>прошу прощения. Система debian linux
>>Но не получается всё равно
>>sed 's/^.*\s\(www[0-9]\+\).*/\1/' | sort | uniq file1
>> Вылазит тот же самый список
>
>Эт-та, надо основы учить...
>sed 's/^.*\s\(www[0-9]\+\).*/\1/' file1 | sort | uniq
>или
>cat file1 | sed 's/^.*\s\(www[0-9]\+\).*/\1/' | sort | uniq


Получился список, но он повторяющийся и с ненужной инфой:
dfhfdhwww1cfbfg
fghfghwww1dfgf
reggegwww1dfggd
rgrewww2dfggddg
dfgfhdwww2dfghgh
dghhhfwww3fgdgf
fdgfghwww4regn

Как отсечь лишнее-то?

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

7. "Скрипт по удалению повторений в файле"  
Сообщение от madskull (ok) on 19-Июл-06, 09:54 

>Как отсечь лишнее-то?
Подумать да поэкспериментировать самому.

Проверил на дебиане, действительно, sed 4.1.2 не понимает \s.
В общем, "на моем дебиане" работает следующий код:
cat file1 | sed 's/^.* \(www[0-9]\+\).*/\1/' | sort | uniq

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

9. "Скрипт по удалению повторений в файле"  
Сообщение от staromsk email(ok) on 19-Июл-06, 10:35 
>
>>Как отсечь лишнее-то?
>Подумать да поэкспериментировать самому.
>
>Проверил на дебиане, действительно, sed 4.1.2 не понимает \s.
>В общем, "на моем дебиане" работает следующий код:
>cat file1 | sed 's/^.* \(www[0-9]\+\).*/\1/' | sort | uniq


Спасибо большое! Всё работает! Только вот не могу понять почему он выводит лишнего много, если нужно получить
www.eee.1
www.eee.2
www.eee.3
www.eee.4
....
Пишу cat file1 | sed 's/^.* \(www.eee.[0-9]\+\).*/\1/' | sort | uniq
                    

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

8. "Скрипт по удалению повторений в файле"  
Сообщение от Brainbug (??) on 19-Июл-06, 09:57 
>Имеется большой файл
>dgdf www1 abc ...
>,jhj, www1 vtr...
> hffg www10 ....
>het www13 ghj
>fgh  www15 dgbg
>thrthr www15 srgg
>.........
>. Подскажите пжлста по написанию скрипта, выбирающего из файла слова с маской
>"www", чтобы получился неповторяющийся список
> www1
> www2
> www3
> www4 и так далее
>

[temp@temp ~]$ cat file1
,jhj, www1 vtsfdgsdr
hffg www10 sdfgfsd
het www13 ghj
fgh  www15 dgbg
thrthr www15 srgg
sfgksdf www1 sfdklgjsdfl
adfgjkdfh w sdfkljgsfldg
sklfjglksdf sfdglkjsf sfdlgjsdflgk
sdfgsdfg www10 sdfjkghf
[temp@temp ~]$ awk '{if($2 ~ /www/){print $2}}' file1 | sort -u
www1
www10
www13
www15

P.S. Pri uslovii 4to jest razdeliteli mezdu polami. V na4alnom uslovii oni jest.


Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

10. "Скрипт по удалению повторений в файле"  
Сообщение от staromsk email(ok) on 19-Июл-06, 10:47 
>>Имеется большой файл
>>dgdf www1 abc ...
>>,jhj, www1 vtr...
>> hffg www10 ....
>>het www13 ghj
>>fgh  www15 dgbg
>>thrthr www15 srgg
>>.........
>>. Подскажите пжлста по написанию скрипта, выбирающего из файла слова с маской
>>"www", чтобы получился неповторяющийся список
>> www1
>> www2
>> www3
>> www4 и так далее
>>
>
>[temp@temp ~]$ cat file1
>,jhj, www1 vtsfdgsdr
>hffg www10 sdfgfsd
>het www13 ghj
>fgh  www15 dgbg
>thrthr www15 srgg
>sfgksdf www1 sfdklgjsdfl
>adfgjkdfh w sdfkljgsfldg
>sklfjglksdf sfdglkjsf sfdlgjsdflgk
>sdfgsdfg www10 sdfjkghf
>[temp@temp ~]$ awk '{if($2 ~ /www/){print $2}}' file1 | sort -u
>www1
>www10
>www13
>www15
>
>P.S. Pri uslovii 4to jest razdeliteli mezdu polami. V na4alnom uslovii oni
>jest.

Извиняюсь перед Вами и уважаемой аудитории форума, но начальные условия такие:
ert<www.eee.1:egrr
fthh<www.eee.1:ynhnht
rtg<www.eee.13rth
rreg<www.eee.26:trhh
hynn<www.eee.467:segn
....

Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Оцените тред (1=ужас, 5=супер)? [ 1 | 2 | 3 | 4 | 5 ] [Рекомендовать для помещения в FAQ]




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

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