sha1sum 실행을 위해 dos mode를 unix mode로 변경 후 실행 script 오류
글쓴이: dhhan74 / 작성시간: 화, 2009/05/12 - 6:26오후
안녕하세요~~
제가 sha1sum으로 특정 파일을 비교하여 체크를 하려고 합니다.
find로 특정 파일을 검색한 후 dos mode로 된 파일을 unix mode로 변경 후 sha1sum으로 실행하려고 아래와 같이 script를 작성했습니다.
#!/usr/bin/bash
find ./ -type f \
-exec cat {} \; | tr -d ^M <= dos mode로 된 파일을 unix mode로 변경
-exec /usr/local/bin/sha1sum {} \; >> result.txt <= 변경된 파일을 sha1sum에서 실행
위와 같이 할 경우 문제가 발생합니다. ^^;
find *.jsp -exec cat {} \; | tr -d ^M | sha1sum > result.txt <= 이렇게 하면 되지만 sha1sum 값만 나오고 파일명은 사라집니다.
즉 unix_mode로 변경된 파일을 sha1sum으로 실행하여야 하는데 그렇게 하지 못하고 있습니다.
tmp 파일로 생성 후 다시 읽어서 작업하는 방식이 아니구 find 부터 sha1sum까지 dos를 unix mode로 변경 후 진행할 수 있는 script가
구현이 안됩니다.. ㅠㅠ
선인들의 지혜를 부탁 드립니다.
Forums:
dos2unix 를 사용해서...
이렇게 사용하면 될 것 같기도 하네요.
데비안에서 dos2unix 프로그램은 tofrosdos 패키지를 설치하면 사용할 수 있습니다.
다시 보니 잘못봤네요.
각 파일별로 루프를 돌려서 sha1sum을 처리해야 할 것 같네요
근데 이렇게만 하면 dos2unix가 없으니...
sha1sum 프로그램에서 stdin으로 입력을 받으면 뒤에 -가 생기는데 이걸 치환하는 방법을 쓸 수도 있겠네요.
답변 감사드립니다.
for 문을 사용해서 처리하려고 했지만..
in `find -type f` 이 부분이 구현이 되지 않아 고민했었습니다.
역시 알고나니 쉽네요 ^^;
파일내에 한글이 있어 아래와 같이 옵션만 변경해서 해결 하였습니다.
다시한번 감사드립니다.
cat $FILE_NAME | dos2unix -ascii | sha1sum | sed -e "s|-|$FILE_NAME|g"
댓글 달기