2016-11-23 2 views
1

이것은 간단한 문제입니다. 여러 파일의 내용을 가져 와서 내용 앞에 헤더로 각 파일의 이름을 인쇄합니다. 그만큼 효과가 있습니다. 하지만 한 파일의 내용과 다음 파일 내용의 헤더를 구분하는 빈 줄을 갖고 싶습니다.새 파일에있는 파일의 내용 뒤에 빈 줄을 삽입하십시오.

나는 그것을 같이 할 :

파일 1 헤더

파일 한 내용

[빈 공간]

파일이 헤더

파일이 내용

"{}"을 (를) 내 코드에 넣으려고했으나 작동하지 않았습니다. 어떤 제안?

find . -type f -name '*_top_hits.txt' -print -exec cat {} \; > combinedresults.txt 

답변

3

할 수 있습니다 단지 빈 echo

find . -type f -name "*_top_hits.txt" -print -exec sh -c "cat {};echo" \; > combinedresults.txt 

echo 단지 각각의 파일 내용을 한 후 하나의 빈 새로운 라인을 생산과 find-exec의 일환으로. 또한 복수의 -exec 옵션을 필요로하지 않고 단일 하위 쉘을 사용하십시오.

+0

감사합니다. sh -c에 대해 설명해 주시겠습니까? – lynkyra

+0

@lynkyra : 명령을 실행하기 위해 명시 적으로 쉘을 호출합니다. 반드시 sh가 아니어도되고 bash -c가 될 수도 있습니다. – Inian

0

당신은 두 번째 -exec를 추가하는 시도 할 수 있습니다 :이의

find . -type f -name '*_top_hits.txt' -print -exec cat {} \; -exec echo \; > combinedresults.txt 

한 부작용은 새로운 라인이 마지막 파일의 내용을 한 후 마지막에 추가 될 것입니다.

관련 문제