파일을 하나로 병합하고 각 파일 사이에 새 줄을 추가합니다.

파일을 하나로 병합하고 각 파일 사이에 새 줄을 추가합니다.

나는 그것을 사용하고 있다

find . -type f \( -name "*.js" ! -name "*-min*" \) -exec cat {} \; > all.js

파일을 함께 병합합니다. 불행히도 각 파일 뒤에 새 줄이 표시되지는 않지만 파일이 끝나고 새 파일이 같은 줄에서 시작됩니다.

각 파일 사이에 개행 문자를 추가하는 방법은 무엇입니까?

답변1

각 파일 뒤에 체계적으로 줄 바꿈을 추가하려면 다음을 수행하십시오.

find . -type f \( -name "*.js" ! -name "*-min*" \) \
     -exec cat {} \; -exec echo \; > all.js

또는

find . -type f \( -name "*.js" ! -name "*-min*" \) \
     -exec sh -c 'for x; do cat "$x"; echo; done' _ {} + >all.js

줄바꿈으로 끝나지 않는 모든 파일의 끝에 줄바꿈을 추가하려면 다음을 수행하세요.

find . -type f \( -name "*.js" ! -name "*-min*" \) \
     -exec awk '1' {} + > all.js

답변2

다음 스크립트는 작업을 수행합니다

find . -type f \( -name "*.js" ! -name "*-min*" \) | while IFS= read -r line
do
   cat "$line"
   echo
done >all.js

답변3

다음과 같이 할 수도 있습니다.

find source/path -name *.js | xargs cat > all.js

관련 정보