The OpenNET Project / Index page

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




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
Сравнение файлов с разным количеством столбцов, !*! dsp976, 03-Мрт-16, 10:47  [смотреть все]
Добрый день.
Подскажите как можно организовать сравнение двух файлов? Один файл - столбец с данными. Второй файл - первый столбец подобен первому файлу, а второй столбец содержит другие данные.

  файл1                          файл2
a/a/a                           a/a/a 1111
b/b/b                          e/e/e 8888
c/c/c                           c/c/c 3333
...                                ...
z/z/z                           z/z/z 2222


Необходимо сравнить файлы по первому столбцу и на выходе получить различия либо вместе с данными из второго столбца (если в первом файле такой нет), либо без них (если такая строка есть только в первом файле). Я сейчас могу только выбрать первый столбец из второго файла и сравнить его с первым файлом с помощью diff.

  • Сравнение файлов с разным количеством столбцов, !*! fail, 11:27 , 03-Мрт-16 (1)
    > Добрый день.

    ...
    > Необходимо сравнить файлы по первому столбцу и на выходе получить различия либо
    > вместе с данными из второго столбца (если в первом файле такой
    > нет), либо без них (если такая строка есть только в первом
    > файле). Я сейчас могу только выбрать первый столбец из второго файла
    > и сравнить его с первым файлом с помощью diff.

    http://пoиcкoвик => sed, awk, etc.. 5 минут

    • Сравнение файлов с разным количеством столбцов, !*! dsp976, 11:33 , 03-Мрт-16 (2) –1
      > http://пoиcкoвик => sed, awk, etc.. 5 минут

      пройденный этап, ничего в голову не приходит


    • Сравнение файлов с разным количеством столбцов, !*! Andrey Mitrofanov, 14:26 , 03-Мрт-16 (3)
      >> Добрый день.
      > ...
      >> Необходимо сравнить файлы по первому столбцу и на выходе получить различия либо
      >> вместе с данными из второго столбца (если в первом файле такой
      >> нет), либо без них (если такая строка есть только в первом
      >> файле). Я сейчас могу только выбрать первый столбец из второго файла
      >> и сравнить его с первым файлом с помощью diff.
      > http://пoиcкoвик => sed, awk, etc.. 5 минут

      Вообще-то, man join.

      Условия - файлы сортированы, сортированы одинаково и  join согласен с этим. Также возможны варианты (разночтения) с разбиением на поля ("столбцы").

      Да, с такой "кухней", кому и awk проще. Но неокрепшие разумы бегут мыслей об авках.

  • Сравнение файлов с разным количеством столбцов, !*! Andrey Mitrofanov, 14:27 , 03-Мрт-16 (4)
    > Добрый день.
    > Подскажите как можно организовать сравнение двух файлов? Один файл - столбец с
    > данными. Второй файл - первый столбец подобен первому файлу, а второй
    > столбец содержит другие данные.

    И ты уже сравнил:

    >Я сейчас могу только выбрать первый столбец из второго файла
    > и сравнить его с первым файлом с помощью diff.

    Задача решена! Молодейц!

    • Сравнение файлов с разным количеством столбцов, !*! dsp976, 15:20 , 03-Мрт-16 (5) –1
      >> Добрый день.
      >> Подскажите как можно организовать сравнение двух файлов? Один файл - столбец с
      >> данными. Второй файл - первый столбец подобен первому файлу, а второй
      >> столбец содержит другие данные.
      > И ты уже сравнил:
      >>Я сейчас могу только выбрать первый столбец из второго файла
      >> и сравнить его с первым файлом с помощью diff.
      > Задача решена! Молодейц!

      Не решена. diff выводит результаты без второго столбца. join отсутствует там где скрипт будет исполняться, в busybox. В man awk я в упор не вижу как можно это реализовать, не хватает опыта его применения.

  • Сравнение файлов с разным количеством столбцов, !*! михалыч, 17:26 , 03-Мрт-16 (9) +1
    grep и cut есть?

    cat OLD
    a/a/a
    b/b/b
    c/c/c
    d/d/d
    f/f/f
    g/g/g
    m/m/m
    z/z/z

    cat NEW
    a/a/a 1111
    e/e/e 8888
    c/c/c 3333
    d/d/d 4444
    g/g/g 5555
    m/m/m 6666
    n/n/n 7777
    z/z/z 2222


    fgrep -vFf OLD NEW
    e/e/e 8888
    n/n/n 7777

    cut -f1 -d " " NEW > TMP
    fgrep -vFf TMP OLD
    b/b/b
    f/f/f


    • Сравнение файлов с разным количеством столбцов, !*! dsp976, 19:35 , 03-Мрт-16 (10) –1
      > grep и cut есть?

      да, есть

      >[оверквотинг удален]
      > z/z/z
      > cat NEW
      > a/a/a 1111
      > e/e/e 8888
      > c/c/c 3333
      > d/d/d 4444
      > g/g/g 5555
      > m/m/m 6666
      > n/n/n 7777
      > z/z/z 2222

      Для чистоты эксперимента создал эти пару файлов OLD и NEW..

      > fgrep -vFf OLD NEW
      > e/e/e 8888
      > n/n/n 7777

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

      После этого я повторил команду с файлами OLD и NEW, но у меня не появилось никакого вывода. Странно.. сейчас буду разбираться в чем причина.

      > cut -f1 -d " " NEW > TMP
      > fgrep -vFf TMP OLD
      > b/b/b
      > f/f/f

      Эта команда у меня отработала точно с таким же выводом. Я так понимаю fgrep и grep -F - одно и тоже, поэтому grep -vFf выдал мне те же результаты.

      Спасибо)

  • Сравнение файлов с разным количеством столбцов, !*! pavlinux, 00:52 , 08-Мрт-16 (13)



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

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