Utilização do diff

1. Utilização do diff

carlos alberto cardeal de jesus
carlos.jesus

(usa openSUSE)

Enviado em 02/05/2011 - 11:11h

Bom dia pessoal,

Estou precisando de uma ajudinha. Eu tenho dois arquivos o Arq1.txt e Arq2.xt, Gostaria de comparar e imprimir duas coluna desses arquivos os seguinte arquivos, por exemplo contém:

Arq1.txt
101 1475
101 1015
101 1735
101 1495
101 1455
101 1035
101 1755
101 1515

Arq2.xt
101 16751
101 19551
101 21751
101 16951
101 21951
101 17151
101 19751
101 19951

Gostaria de comparar a primeira coluna do arq1.xt com a coluna primeira do arq2.xt e a segunda com a segunda.

Sei que se fosse apenas comparar os arquivo faria:

#!/bin/bash

diff Arq1.txt Arq2.txt > Differenca1x2.txt

Alguém poderia me ajudar?



  


2. Re: Utilização do diff

DAVISON MARCEL PASQUALINI
fdmarp

(usa Debian)

Enviado em 02/05/2011 - 20:09h

Cara, eu não sei se entendi bem o seu problema, mas vai ai minha sugestão.

Não assusta com o tamanho nã, é quase tudo documentação ... a parte de execução é pequena.





#!/bin/bash
# xdiff
# --------------------------------------
# Script Viva o Linux
# --------------------------------------
# fdmarp

help ()
{
clear
echo "
User Commands xdiff(1)

`tput bold`NAME`tput sgr0`
xdiff - compara colunas de arquivo

`tput bold`SYNOPSIS`tput sgr0`
xdiff [arquivo_1][arquivo_2] [numero_da_coluna1] [numero_da_coluna2]


`tput bold`DESCRIPTION`tput sgr0`
Compara determinada coluna de um arquivo com uma coluna de outro
arquivo.
Caso nao seja definida a coluna do segundo arquivo, sera assumida a
mesma do arquivo_1.

`tput bold`OPTIONS`tput sgr0`
The following options are supported:

arquivo_1 - nome do primeiro arquivo.

arquivo_2 - nome do segundo arquivo.

coluna_1 - numero da coluna no arquivo_1.

coluna_2 - OPICIONAL - numero da coluna no arquivo_2.


Examples:
xdiff Arq1.txt Arq2.txt 1 2
xdiff Arq1.txt Arq2.txt 2

`tput bold`VERSION`tput sgr0`
Version is 1.01

"
exit 0

}

COLUNA1=$3
COLUNA2=$4
arq1=$1
arq2=$2

if [ "$4" = "" ]; then
COLUNA2=$COLUNA1
fi


case "$COLUNA1" in
[0-99] )

awk "{ print \$$COLUNA1 }" $arq1 | while read line_arq1
do
COUNT=`expr $COUNT + 1`
line_arq2=`awk "NR==$COUNT{ print \$ $COLUNA2 }" $arq2`
if [ "$line_arq1" != "$line_arq2" ]; then
echo "xdiff -> $line_arq1 $line_arq2"
fi
done

;;

* )
help
;;
esac








Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts