파일 사이에 새 줄을 유지하면서 디렉터리에 있는 여러 텍스트 파일을 새 파일로 병합하고 싶습니다.
답변1
상황에 따라 다음과 같이 간단할 수 있습니다.
파일을 가져오기 위한 일부 와일드카드(filea, fileb, filec 등)
FILES=`ls file*`
그런 다음 연결하세요
for i in $FILES; do cat "${i}" >> newfile; echo "" >> newfile; done
답변2
한 가지 방법은 다음과 같습니다 GNU find
.
td=$(mktemp -d);printf '\n\n' > "$td/2"
find . -maxdepth 1 -type f -exec cat {} "$td/2" \; | head -n -2 > "$td/log"
find
현재 디렉터리의 일반 파일을 가져와 cat
빈 줄로 연결된 파일에 전달합니다. 마지막으로 출력은 head
후행 공백 줄이 제거된 파일에 공급된 다음 로그 파일에 저장됩니다.
perl -lpe '$\ = eof && !eof() ? "\n\n" : $/' *.files