The OpenNET Project / Index page

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

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

"сравнение текстовых файлов"  
Сообщение от creapt (ok) on 30-Июн-06, 00:21 
Дано:

файл1 содержит строки:
qwerty
qwerty1
qwerty2

файл2 содержит строки:
qwerty        aaaaaaa1
qwerty1            bbbbbb1
qwerty2            ccccccc1
qwerty3            dddddd1
qwerty4            wwwww1
qwerty5            rrrrrrrrr1

Цель:
Сравнить файлы и записать в отдельный файл строки:

aaaaaaa1
bbbbbb1
ccccccc1

именно только в таком виде.

Народ может кто подскажет, каким образом это можно реализовать.

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

 Оглавление

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


1. "сравнение текстовых файлов"  
Сообщение от allez (ok) on 30-Июн-06, 05:37 
>Народ может кто подскажет, каким образом это можно реализовать.

Подсказываю: нужно построчно считывать файл1 и отыскивать в файле2 соответствующие
строки (причем искать не просто подстроку, а целое слово), а потом выводить вторую
(отделенную пробелами) часть этих строк в отдельный файл.

В общем случае достаточно будет командной строки, состоящей из четырех команд,
двух конвейеров, одного оператора перенаправления и одного цикла.

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

2. "сравнение текстовых файлов"  
Сообщение от perece on 30-Июн-06, 17:57 
>>Народ может кто подскажет, каким образом это можно реализовать.
>
>Подсказываю: нужно построчно считывать файл1 и отыскивать в файле2 соответствующие
>строки (причем искать не просто подстроку, а целое слово), а потом выводить
>вторую
>(отделенную пробелами) часть этих строк в отдельный файл.
>
>В общем случае достаточно будет командной строки, состоящей из четырех команд,
>двух конвейеров, одного оператора перенаправления и одного цикла.
и без цикла (явного) можно. sed -e 's/^/^/' -e 's/$/ /' <file1 | grep -f - file2 | cut -d' ' -f2
(или  |awk '{print $2}' если количество пробелов может быть разным)

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

3. "сравнение текстовых файлов"  
Сообщение от allez (ok) on 30-Июн-06, 19:03 
>и без цикла (явного) можно. sed -e 's/^/^/' -e 's/$/ /' <file1
>| grep -f - file2 | cut -d' ' -f2
>(или  |awk '{print $2}' если количество пробелов может быть разным)


Можно, конечно. Но я бы предпочел, чтобы автор темы дошел до этого своим умом.
В конце концов, это _его_ домашнее задание :-).

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

4. "сравнение текстовых файлов"  
Сообщение от creapt (ok) on 30-Июн-06, 23:06 
Спасибо народ.
Я читал про sed, но толком не разобрался. Eсли Вам не трудно, может дадите ссылку на хорошее описание sed, желательно на русском.
Правка | Высказать мнение | Ответить | Cообщить модератору | Наверх

5. "сравнение текстовых файлов"  
Сообщение от allez (ok) on 01-Июл-06, 07:46 
>Спасибо народ.
>Я читал про sed, но толком не разобрался. Eсли Вам не трудно,
>может дадите ссылку на хорошее описание sed, желательно на русском.

:-)
Нужная вам ссылка находится прямо на этой странице (в верхней части), и называется"MAN'ы".
Сходите по ней и поищите по запросу "sed". Должно получиться что-то вроде этого: http://www.opennet.me/man.shtml?topic=sed&russian=0&category=&submit=%F0%CF%CB%C1%DA%C1%D4%D8+man

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

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

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




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

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