쉘스크립트 조작
쉘스크립트로 아래와 같은 기능을 구현해야 합니다만...
1. 파일 내용 치환 1
1.1. 환경 정의 파일(a.def)
A_TABLE 5 0 0 1 1 0
B_TABLE 3 1 0 0
<의미> A_TABLE의 컬럼은 5개이고, 3, 4번째 컬럼의 flag가 1이다. B_TABLE의 컬럼은 3개이고, 1번째 컬럼의 flag가 1이다.
1.2. 사용자 입력
1.2.1. 테이블명 : A_TABLE (환경 정의 파일에서 "A_TABLE 5 0 0 1 1 0" 레코드를 읽기 위해 입력받음)
1.2.2. 파일명 : a.del
<의미> 환경 정의 파일에서 A_TABLE의 정보를 읽어, 파일 a.del로부터 flag가 1로 설정된 컬럼에 해당하는 내용을 "*"로 변경한다.
1.3. 데이터 변경
변경 전 --> (csv형식)
"서울", "150", "서울주식회사", "5000", "특이사항"
변경 후 --> (csv형식)
"서울", "150", "**********", "****", "특이사항"
1.4. 이처럼 바이트 수에 맞게 데이터를 "*"로 변경하는 쉘을 어떻게 구현하면 될까요.
데이터 변경 처리 부분(1.3)만이라도 알려주시면 감사하겠습니다.
2. 파일 내용 치환 2
2.1. 파일 형식 : 일반 로그 파일
2.2. 변경 전 로그 파일 예
2009-04-13 14:20:32 test1.c 108 This is information1.
2009-04-13 14:20:32 test1.c 109 This is information2.
2009-04-13 14:20:32 test1.c 110 This is 홍길동's information3.
2009-04-13 14:20:32 test1.c 111 This is 강감찬's information4.
2.3. 변경 후 로그 파일 예
2009-04-13 14:20:32 test1.c 108 This is information1.
2009-04-13 14:20:32 test1.c 109 This is information2.
2009-04-13 14:20:32 test1.c 110 This is ******'s information3.
2009-04-13 14:20:32 test1.c 111 This is ******'s information4.
2.4. 이와 같이 로그 파일의 내용을 변경해야 하는 데, 좋은 방법이 있으시다면 조언 부탁드리겠습니다.
실은 메일주소, 전화번호와 같은 부분도 변경해야 하는데 그건 정규표현으로 하면 될 것 같은데..
한글 처리는 어떻게 하는 것이 가장 좋을까요. 아스키 코드 판별 등으로 치환할 수 있다면
간단할 것 같습니다만.. 쉘에서 아스키 코드 판별 같은게 가능한가요?
읽어주셔서 감사합니다.
그럼, 답변 부탁드리겠습니다.
댓글 달기