2009. 11. 5. 21:31
13. 파일 비교 스크립트 4
2009. 11. 5. 21:31 in 쉘스크립트
원본 파일(a.txt)에서 특정한 파일의 숫자들(b.txt) 을 뺀 나머지 라인들을 구하는 것
우선 원본 파일 변경되므로 원본파일은 다른 이름으로 변경시켜 놓는다.
반복문이 몇번 실행되었는지 체크하기 위한 count 변수 지정
원본 a.txt 파일을 a.txt_org 으로 백업한다.
(2) for mdn in `cat /home/bjh/homepcssn/test/b.txt | awk -F, '{print $1}'`
for 반복문을 사용
mdn 이란 변수에 b.txt 파일에서 숫자가 있는 필드만 awk 로 골라내어서 for 문을 사용해 차례로 입력하도록 한다
( 나중에는 cat 부분만 변경해서 사용 / 숫자만 있는 파일이면 cat 만 써도 됨 )
awk 에서 -F 옵션은 구분자를 지정할때 사용 ( 지정하지 않으면 빈칸으로 필드 구분 )
즉 쉼표(,) 로 구분했을때 첫번째 필드가 숫자가 되기 때문에 사용
여기서 $mdn 이란 변수에는 숫자(전화번호) 만 들어간다
(3) sed -e "/"$mdn"/d" $dir/aa.txt > $dir/imsy.txt
변수 mdn이 포함된 라인만 지운 나머지 모든 라인을 임시파일 imsy.txt 파일에 저장한다.
(4) cat imsy.txt > a.txt
임시파일을 원본 a.txt 에 덮어쓴다
이때 첫번재 mdn 값을 제외한 모든 라인이 a.txt 에 덮어쓴다.
(5) count=`expr $count + 1`
반복문이 1번 반복될때마다 count 변수는 하나씩 증가한다.
(6) done
mdn 변수의 개수만큼 돌아가고 나서 반복문 종료
(7) echo "count is =" $count
반복문이 몇번 실행되었는지 확인
즉 mdn 변수가 몇번 변했는지도 알 수 있다.
즉 b.txt 에서 숫자가 몇라인이 들어있는지 알 수 있다
(8) rm $dir/imsy.txt
임시파일 삭제
우선 원본 파일 변경되므로 원본파일은 다른 이름으로 변경시켜 놓는다.
#!/bin/bash dir=$PWD count=0 cp $dir/a.txt $dir/a.txt_org for mdn in `cat $dir/b.txt | awk -F, '{print $1}'` do sed -e "/"$mdn"/d" $dir/a.txt > $dir/imsy.txt cat $dir/imsy.txt > $dir/a.txt count=`expr $count + 1` done echo "count is =" $count rm $dir/imsy.txt작업할 디렉토리 지정
반복문이 몇번 실행되었는지 체크하기 위한 count 변수 지정
원본 a.txt 파일을 a.txt_org 으로 백업한다.
(2) for mdn in `cat /home/bjh/homepcssn/test/b.txt | awk -F, '{print $1}'`
for 반복문을 사용
mdn 이란 변수에 b.txt 파일에서 숫자가 있는 필드만 awk 로 골라내어서 for 문을 사용해 차례로 입력하도록 한다
( 나중에는 cat 부분만 변경해서 사용 / 숫자만 있는 파일이면 cat 만 써도 됨 )
awk 에서 -F 옵션은 구분자를 지정할때 사용 ( 지정하지 않으면 빈칸으로 필드 구분 )
즉 쉼표(,) 로 구분했을때 첫번째 필드가 숫자가 되기 때문에 사용
여기서 $mdn 이란 변수에는 숫자(전화번호) 만 들어간다
(3) sed -e "/"$mdn"/d" $dir/aa.txt > $dir/imsy.txt
변수 mdn이 포함된 라인만 지운 나머지 모든 라인을 임시파일 imsy.txt 파일에 저장한다.
(4) cat imsy.txt > a.txt
임시파일을 원본 a.txt 에 덮어쓴다
이때 첫번재 mdn 값을 제외한 모든 라인이 a.txt 에 덮어쓴다.
(5) count=`expr $count + 1`
반복문이 1번 반복될때마다 count 변수는 하나씩 증가한다.
(6) done
mdn 변수의 개수만큼 돌아가고 나서 반복문 종료
(7) echo "count is =" $count
반복문이 몇번 실행되었는지 확인
즉 mdn 변수가 몇번 변했는지도 알 수 있다.
즉 b.txt 에서 숫자가 몇라인이 들어있는지 알 수 있다
(8) rm $dir/imsy.txt
임시파일 삭제
최종 파일 비교 스크립트 -> http://darkrang.tistory.com/219
'쉘스크립트' 카테고리의 다른 글
파일 라인안에 앞에 내용 추가 / 맨뒤에 내용 추가 방법 (0) | 2011.06.17 |
---|---|
파일비교 스크립트 5 (2) | 2010.05.25 |
파일들의 확장자만 변경 (0) | 2010.04.22 |
15. 텍스트 파일 포맷 변경 (2) | 2009.12.22 |
14. 지난 파일 압축하고 삭제하기 (2) | 2009.12.18 |
12. 파일 개수 비교해서 삭제하는 스크립트 (3) | 2009.10.21 |
11. SSH 접속 차단 스크립트 ( 5번 패스워드 틀리면 자동 차단) (2) | 2009.09.19 |
10. 파일비교 스크립트2 (3) | 2009.09.18 |
9. 여러 파일 하나의 txt 파일로 합치기 스크립트 (3) | 2009.09.10 |
8. 파일 내용 비교1 (3) | 2009.09.10 |