2012-10-16 2 views
0

나는 두 개의 파일을 기반으로 두 파일의 차이를 찾을 필요가 각 파일은 두 개의 열는 쉘 스크립트가 첫 번째 열

File1 열 아래 가진 데 :

ECDLT 5 
DBG0 0 
AHDST 53 
RSNDL 10 
DBLOG 2 
ATDLM 1 
ATREJ 1 
DLMKT 0 
AKDRP -100 
ALTCM 100000000  
BCPTM -1000000000 
PERFS 1 
OMSTD 1 
LDTHD 1 
DGCAN 1 
HRLOG 1 
AKALT 0 

File2이 열 아래 갖는 :

ECDLT 5 
DBG0 0 
MFLOR 1 
LIPEM 1 
GXTHR 5 
LIPEM 1 
LIPEM 1 
RPTAT -1 
RPTPA -1 
PTIMR 1 
NOQUE 1 
AHDST 53 
RSNDL 10 
DBLOG 2 

그래서 여기서는 첫 번째 열을 사용하여 두 파일의 차이를 찾기 위해 셸 스크립트가 필요하며 출력에서 ​​두 열을 모두 인쇄해야합니다.

필자는 쉘 스크립팅을 처음 사용합니다. 이걸 도와주세요. 나는 아주 나쁜 필요가있다.

+0

난 당신이 출력에 원하는에서 자세한 내용을 제공 할 수 있습니다, 당신이 무엇을 요구 확실하지 않다 모양을 나타내거나 예제 출력을 제공합니까? –

+0

각 파일의 첫 번째 열을 관찰하면 다른 값을 갖는 행이 거의 없습니다. 따라서 두 파일의 차이 값이 필요합니다 (첫 번째 열만 사용하여 파일을 비교해야 함) – user1750671

답변

5

(.이보다 간결하게 편집 당신은 출력을 원하는 위치에 대한 자세한 제어 그래서 명령 줄에 스크립트에서 방향 이동) 당신이 첫 번째 두 개의 열을 인쇄 할 설명을 바탕으로

을 FILE1 및 1 열 값을 제 2 파일의 해당 행에 대해 상이한 전용 라인에서 (그리고 가정 제 파일 2 파일보다 라인 갖는다)

#!/bin/bash 

paste $1 $2 | awk '{if ($1 != $3) {print $1 " " $2}}' 

및 이것에 사용하는 것이 어떻게 스크립트 (이름은 diff_col.sh 임) :

$ chmod +x diff_col.sh 
$ ./diff_col.sh input_file1 input_file2 > output_file 
샘플 입력이

, 그냥

$ ./diff_col.sh input_file1 input_file2 

내가 얻을 :

AHDST 53 
RSNDL 10 
DBLOG 2 
ATDLM 1 
ATREJ 1 
DLMKT 0 
AKDRP -100 
ALTCM 100000000 
BCPTM -1000000000 
PERFS 1 
OMSTD 1 
LDTHD 1 
DGCAN 1 
HRLOG 1 
AKALT 0 
+0

예 .. 이처럼 출력을 찾고 있습니다. .. 그러나 나는 혼란 스럽다. .. 우리는 diff & how를하고있다? – user1750671

+0

diff가 필요하지 않습니다. 비교는 awk 스크립트 (http://www.grymoire.com/Unix/Awk.html) 내에서 이루어집니다. –

+0

okay..i 이해하지만 .. 두 파일의 처음 두 열 .. 인쇄가 필요합니다. file1의 처음 두 열을 인쇄하십시오. – user1750671

관련 문제