URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 5538
[ Назад ]

Исходное сообщение
"сравнение текстовых файлов"

Отправлено creapt , 30-Июн-06 00:21 
Дано:

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

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

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

aaaaaaa1
bbbbbb1
ccccccc1

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

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


Содержание

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

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

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


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


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


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


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

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

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