파일 시스템 분기에서 각 파일의 모든 탭을 각각 2 개의 공백으로 바꾸는 방법은 무엇입니까? 사용하는 것입니다. 그러나 다른 편집기를 사용하면 소스와

나는 스칼라를 코딩하고 규칙은 식별을 위해 레벨 당 이중 공백을 사용하는 것입니다. 그러나 다른 편집기를 사용하면 소스와 공백이 혼합되어 채워집니다.

모든 파일 (* .scala 파일, 실제로는 지정하지 않아도 됨) (지정된 디렉토리 및 모든 기본 FS 분기 (재귀 적으로))을 자동으로 리팩터링하고 모든 탭을 이중 공백으로 바꿉니다. 클래식 Unix / GNU 도구를 사용하여 쉽고 아름다운 방법이 있지만이 분야에 대한 경험이 부족합니다. 도와 주실 래요?



답변

재귀 적으로 expand(이 목적으로 만들어진)find . -type f -name '*.scala' -exec bash -c 'for x in "$@"; do mv "$x"{,.bak} && expand -t 2 "$x.bak" > "$x" && rm "$x.bak"; done' {} +

나는 그것을 할 것 sed또는 perl(Sardathrion의 답변을 참조)가 인라인 편집을 지원하기 때문에,하지만 난 ‘좋은 똑똑한를 언급하고 싶었 expand어쨌든.

편집 : 그럴 것입니다 find . -type f -name '*.scala' -exec perl -p -i -e $'s/\t/ /g' {} +


답변

이것은해야합니다 :

find . -type f -name '*.scala$' -exec sed -i 's/\t/  /g' {} +

참고 : 이것은 테스트되지 않았습니다.


답변