The UNIX and Linux Forums  


Go Back   В UNIX и Linux Форумы > Топ форумы > Shell программирование и сценарии
.
Google unix.com



Shell программирование и сценарии Почтовые вопросы о KSH, CSH, SH, BASH, Perl, PHP, SED, AWK и скрипты оболочки и оболочки скриптовых языков здесь.

Подробнее UNIX и Linux Темы форума можно найти полезные
Нить Резьба для начинающих Форум Ответы Последнее сообщение
нуждается в помощи .. Сравнение bluesilo Shell программирование и сценарии 0 02-23-2008 04:43 PM
Сравнение 2 файлов в UNIX Дана Эванс UNIX для чайников Вопросы И Ответы 32 11-21-2007 07:05 AM
String Сравнение двух файлов с использованием AWK rudoraj Shell программирование и сценарии 7 07-25-2006 12:04 PM
реж сравнения поможет Гази Shell программирование и сценарии 5 12-20-2004 05:54 PM
Сравнение CNF Файловые системы, диски и память 2 05-14-2002 02:52 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered By Powered by Google
 
LinkBack Резьба Инструменты Искать в этом Thread Оценить Thread Режимы дисплея
Old 07-25-2006
Джером Сукумар jerome Sukumar is offline
Зарегистрированный пользователь
  
 

Регистрация: Jul 2006
Сообщений: 22
Post Сравнение двух файлов в AWK

Привет,
У меня есть два файла file1 и file2 делимитированной запятой,
И я хочу сравнить колонку 2 и column3 из file1 в column3 и 4 колонки в file2.

file1
--------
ABC; СЕФ; 155,67; 143_34;
DEF; fgh; 146,55; 123,3;
фрг; HFF; 134,67;;
YYY; fgh; 134,78; 35_45;

файл 2
---------
ABC; СЕФ; 155,09;;
ABC; СЕФ; 155,67; 143_34;
ASD;;; 123;
DEF; fgh; 145,6; 123,3;
DEF; fgh; 146,55; 123,3;
фрг; HFF; 134,67;;

Successfile1
------------
ABC; СЕФ; 155,67; 143_34;
DEF; fgh; 146,55; 123,3;

Failfile1
-----------
фрг; HFF; 134,67;;
YYY; fgh; 134,78; 35_45;

Может кто поможет мне с помощью сценария.
Old 07-25-2006
girish.karulkar girish.karulkar is offline
Зарегистрированный пользователь
  
 

Регистрация: Jul 2006
Сообщений: 4
Привет Джером

Прежде всего это WHT видим col2 файла 1 текст И col3 из file2 это число,
Так как ур будем сравнивать?

но вы можете использовать несколько так

#! / USR / BIN / KSH

светотеневую D ";"-f2 file1>> tmpf2.txt
эхо
светотеневую D ";"-f3 file2>> tmpf3.txt

дифф tmpf2.txt tmpf3.txt

светотеневую D ";"-f3 file1>> tmpf3.txt
эхо
светотеневую D ";"-f4 file2>> tmpf4.txt

дифф tmpf3.txt tmpf4.txt

RM tmpf [0-9]. TXT

Old 07-25-2006
Джером Сукумар jerome Sukumar is offline
Зарегистрированный пользователь
  
 

Регистрация: Jul 2006
Сообщений: 22
перефразируйте

К сожалению Гириш,

Я имею ввиду колонке информация ошибочно,
Ее col3 и col4 из file1 в col3 и col4 из file2 сравнения.
Old 07-25-2006
grial's Avatar
grial grial is offline Forum Advisor  
Эль UNIX-эс COMO UN Торо
  
 

Регистрация: Июнь 2006
Место проведения: Мадрид (Испания)
Сообщений: 531
Возможно, это то, что вы хотите, но я не уверен, если я Вас понял

Код:
#!/bin/bash

comp1=($(cat text1.txt | cut -d\; -f 3,4))
comp2=($(cat text2.txt | cut -d\; -f 3,4))

for str in ${comp1[*]}; do
   i=0
   while (( $i < ${#comp2[*]} )); do
      if [[ $str = ${comp2[i]} ]]; then
         cat text1.txt | grep $str
      fi
      (( i += 1 ))
   done
done

Привет.
Old 07-25-2006
Джером Сукумар jerome Sukumar is offline
Зарегистрированный пользователь
  
 

Регистрация: Jul 2006
Сообщений: 22
Проблема.

Привет Grial,
Благодарим Вас за оперативное и быстрое реагирование.

Этот скрипт работает для сравнения две колонки например, COL 3 и col4 из двух файлов.

Если я стараюсь, чтобы попытаться сравнить только col3 двух файлов,
Я получаю избыточной записи.

Например:
Моя file1 состоит из 100 отчетов и
file2 состоит из 238 records.If я пытаюсь сравнивать, file1 и file2 я получил 116 записей в качестве моего O / P
В console.Can У меня предположить, как исправить это.
Old 07-25-2006
grial's Avatar
grial grial is offline Forum Advisor  
Эль UNIX-эс COMO UN Торо
  
 

Регистрация: Июнь 2006
Место проведения: Мадрид (Испания)
Сообщений: 531
Опять же, я не знаю, если я понял. У вас значит, что вы могли бы дублировать отчеты о file2? Или Вы хотите только первые случаи? Если это так, то попробуйте:

Код:
#!/bin/bash

comp1=($(cat text1.txt | cut -d\; -f 3,4))
comp2=($(cat text2.txt | cut -d\; -f 3,4))

for str in ${comp1[*]}; do
   i=0
   while (( $i < ${#comp2[*]} )); do
      if [[ $str = ${comp2[i]} ]]; then
         cat text1.txt | grep $str
         break
      fi
      (( i += 1 ))
   done
done

Closed Thread

Закладки

Резьба Инструменты Искать в этом Thread
Искать в этом Thread:

Расширенный поиск
Режимы дисплея Оценить эту ветку
Оценить эту ветку:

Отправка Правила
Вы не может Начать новую нитей
Вы не может Почтовые ответы
Вы не может Почтовые вложения
Вы не может Редактировать Ваши сообщения

BB код быть На
Смайлики являемся На
[IMG] код На
HTML-код Вне
Trackbacks являемся На
Pingbacks являемся На
Refbacks являемся На




Часовой пояс GMT -4. Текущее время 03:16 PM.


Powered By: Справка, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Язык Переводы на питание от .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
В UNIX и Linux форумы Содержание Copyright © 1993-2009. Все права Reserved.Ad управления по RedTyger

Содержание соответствующие URL-адреса в vBSEO 3.2.0