awk로 2개 파일 비교하기..
글쓴이: hochi89 / 작성시간: 월, 2022/01/24 - 1:18오후
안녕하세요 저는 현재 awk를 통해 2개의 파일을 비교할 수 있는 스크립트를 만드려고 합니다
예를들어.. hist1.txt와 hist2.txt 2개의 파일이 있습니다.
hist1.txt는 표준(기준)파일이며 hist2.txt에 설정한 값이 변경되었는지 확인하는 작업을 하려고 합니다.
* hist1.txt
A=봄 B=여름 C=가을 D=겨울
* hist2.txt
A=봄 B=바다 C=가을
이것을 아래와 같이 awk명령으로 비교하면
# awk 'NR==FNR{a[$0];next} {if ($0 in a)print $0,"=>","Pass";else print $0,"=>","Change" }' hist1.txt hist2.txt
위 명령을 실행하면 아래와 같은데요.. 값이 변경되는 부분은 chage로 표기가 됩니다.
A=봄 ==> pass B=바다 ==> change C=가을 ==> pass
중요한것은 hsit1.txt에는 있지만 hist2.txt에 없는 D=겨울을 골라내여 not exist로 표기하고싶은데
A=봄 ==> pass B=바다 ==> change C=가을 ==> pass D=겨울 ==> not exist!
이럴경우 어떻게 처리해야할지 궁금하여 고수님들 의견 부탁드립니다.
감사합니다~~
Forums:
diff 어떠세요?
hist1.txt 는 없지만 hist2.txt 에는 있는것 까지 표시하려면 diff 를 이용하시는게 좀 더 편하지 않을까 싶기도 하네요
생각보다 diff 가 어렵드라구요
------------------------------------------------------------
ProgrammingHolic
hist2.txt 파일을 먼저 읽어들여 보세요
awk -F= 'NR == FNR{ a[$1] = $2; next} {
if ($1 in a) {
if ($2 == a[$1]) print $0,"=>","Pass"
else print $0,"=>","Change"
} else
print $0, "=>", "not exist!"
}' hist2.txt hist1.txt
댓글 달기