2012-02-06 2 views
1

Add header (copyright) information to existing source files의 지침에 따라 우리가 건물에서 보내는 수많은 소스 파일에 저작권 헤더를 추가해야합니다. (저작권 헤더도 싫어하지만 독점적 인 소스 파일을 공개 할 때의 정책입니다. "정책을 포기하도록 누군가를 설득하는 것이 도움이되지 않으며 질문에 대답하지 않는 것"이라고 생각하십시오.)소스 파일에 헤더를 넣으려고했지만 유니 코드 BOM이 진행 중입니다

나는 나는 '반면, dir.orig 내에서 모든 (dirdir.orig에서) 파일은, 내가

find . -name \*.cs -exec sh -c "mv '{}' tmp && cp ../header.txt '../dir/{}' 
    && cat tmp >> '../dir/{}' && rm tmp" \; 

이가 작동을 사용하고 있지만, 다음 헤더, 원본 소스 파일의 BOM와 결말 d는 BOM을 시작으로 이동하거나 제거하는 것을 선호합니다.

(이 보면, 내가 tmp에 파일을 이동하는 것은 불필요 내가 원본을 덮어 쓰지 않을거야 주어진하지만 난 다른 SO 질문의 예에서 것을 제거 귀찮게하지 않았다는 것을 알고 있습니다.)

BOM을 제거 (또는 이동)하여 새로 추가 된 헤더 바로 다음에 나타나지 않게하려면 어떻게합니까?

답변

1

uconv에서 this answer에서 Steven R. Loomis까지 관련 질문에 대한 답변을 얻은 것 같습니다.

내가

find . -name *.cs -exec sh -c "cp ../header.txt '../dir/{}' 
    && uconv --remove-signature -f UTF-8 -t UTF-8 '{}' >> '../dir/{}'" \; 

는 다음 uconv 입력 (-f)과 출력 모두를 가정 사용하는 경우 (-t) 인코딩은 UTF-8,하지만 그것이 찾은 BOM을 제거하는 --remove-signature가 발생한다.