리눅스에서 쉘 프로그램으로 파일을 읽은 다음에
그 파일 내의 특정 문자열을 다른 문자열로 치환한 다음
다시 같은 파일 이름으로 저장하려고 합니다.
쉘 프로그램을 처음 짜려고하니 쉘 메뉴얼을 봐도 잘 모르겠습니다.
위와 같은 프로그램을 짜는데 어떠한 함수들이 필요한지 가르쳐 주세요.
제가 기껏 찾은 함수는 read 밖에는 없네요.
sed 나 awk들은 대용량 파일을 처리하기 위해서 한번에 읽어와서 처리하
출력하는 방식이 아니라. 버퍼에 저장해서 순차적으로 읽고 실행 출력을 반
복합니다. sebul님 말처럼 중간에 같은 이름으로 리디렉션 하시면 0바이트
파일을 보시게 될껍니다. 중요한 파일이라면 대략 난감하겠죠..
/tmp 디렉토리에 타임스탬프 값같은걸로 저장하고 그 파일을 mv하는 식으로
하시는것이 좋을껍니다.
Re: 쉘로 파일 읽고 쓰기
여러 방법이 있지만 sed 를 쓰는 방법이 있습니다.
http://wiki.kldp.org/Translations//html/Sed-KLDP/
그 문서에 제시된 자주 쓰이는 명령 중, 's/정규표현식/교체어/플래그'가
주로 쓰일 겁니다. 아마 쉘 스크립트까지 안가고, 명령 한줄만으로도
끝날 수 있을 거에요.
Orion Project : http://orionids.org
같은 파일 이름으로 저장 ? -.-조심하셔야 합니다.잘못하면
같은 파일 이름으로 저장 ? -.-
조심하셔야 합니다.
잘못하면 원래의 파일 자체가 내용이 다 사라질 수도 있다는...
그런 예가 어떤 경우였는지는 지금은 잘 생각이 안 나는데... 리디렉션 잘못쓰면 파일 내용이 없어지거나 했던 것 같은데..
sed 와 awk 를 적절히 잘 사용하면 될 겁니다.
세벌 https://sebuls.blogspot.kr/
Re: 쉘로 파일 읽고 쓰기
보통 쉘 프로그래밍이라 하면 쉘 자체도 중요하지만, 그걸로만 복잡한 작업을 할 수는 없습니다. 각종 유틸리티들을 적재 적소에 사용하고 쉘을 이용하여 조합한다고 해야 할까...
문자열 치환은 위엣분도 말씀하셨지만 sed가 적당할 거 같습니다.
Re: 쉘로 파일 읽고 쓰기
sed 나 awk들은 대용량 파일을 처리하기 위해서 한번에 읽어와서 처리하
출력하는 방식이 아니라. 버퍼에 저장해서 순차적으로 읽고 실행 출력을 반
복합니다. sebul님 말처럼 중간에 같은 이름으로 리디렉션 하시면 0바이트
파일을 보시게 될껍니다. 중요한 파일이라면 대략 난감하겠죠..
/tmp 디렉토리에 타임스탬프 값같은걸로 저장하고 그 파일을 mv하는 식으로
하시는것이 좋을껍니다.
목적을 찾아서... jiNoos
댓글 달기