여러 개의 텍스트 파일을 하나의 파일로 결합


10

pr여러 텍스트 파일을 하나의 텍스트 파일로 결합하기 위해 unix 명령을 사용하고 있습니다.

pr -F *files > newfile

각 파일은 길이가 다르고 줄 수가 다릅니다. 나는 주로 결과에 만족합니다. 원래 텍스트 파일의 이름과 그 파일의 내용이 포함되어 있기를 바랍니다. 그러나 원본 텍스트 파일 이름과 내용 사이의 빈 줄을 제거하고 싶습니다. 서로 다른 텍스트 파일 사이에 빈 줄만 사용하여 각각을 분리하고 싶습니다. 또한 ^L각 텍스트 파일의 내용 뒤에 문자를 인쇄하므로 해당 문자 를 제거하고 싶습니다.

읽은 각 파일에도 '페이지'번호가 부여됩니다. 하나의 파일 만 66 줄 기본값보다 깁니다. 그 파일은 2 개의 '페이지'로 뱉어지고 빈 줄로 나뉘어 진 2 개의 섹션으로 나뉩니다. 텍스트를 나누지 않고 계속해서 쓸 수 있습니까?

도움을 주셔서 감사합니다!

답변:


9

AWK 유틸리티를 사용할 수 있습니다 :

awk 'FNR==1{print ""}{print}' *files > newfile

출처 : /programming/1653063/how-do-i-include-a-blank-line-between-files-im-concatenating-with-cat


제안 해 주셔서 감사합니다. 그러나 -T는 인식되지 않습니다. 중요한 경우 Mac OS X에서 작업하고 있습니다.
janet

불행히도 -t는 cat과 동일한 유형의 파일을 생성하고 텍스트 파일을 읽지 않습니다.
janet

Radu 감사합니다. 바로 내가 원하는 것을 얻습니다! 죄송합니다. 주제를 벗어났다는 알림이 표시되어 잘못된 위치에 게시하고 있음을 알게되었습니다. 도와 주셔서 감사합니다!
janet

12

파일 사이에 빈 줄을 만들려면 :

cat file1 newline file2 newline file3 > newfile

여기서 'newline'은 빈 줄이있는 파일입니다.


파일을 만드는 방법을 명확히 할 수 있습니까 newline? 일부 텍스트 편집자는 마지막 줄에 줄 끝 문자를 자동으로 추가하고 다른 줄 문자는 자동으로 추가하지 않으므로 일부 사람들은이 파일을 올바르게 작성하는 데 문제가 발생할 수 있습니다. 달리 말하면 길이가 0 인 파일에 줄이 없거나 줄이 있습니까?
Eliah Kagan

vim에서 vim 개행 : wq 그게 다야.
다리우스 치케 비치 우스

내가 아는 한 "cat"은 각 파일 사이에 새로운 줄을 자동으로 넣습니다.
myuce

1
for file in *.txt; do (cat "${file}"; echo) >> concatenated.txt; done

위는 eacb txt 파일의 내용을 concatenated.txt에 추가하여 그 사이에 줄을 추가합니다.


0

다음을 사용 cat하여 파일 텍스트를 하나의 파일로 덤프하는 데 사용할 수 있습니다 .

cat file1 file2 file3 > newfile

2
불행히도 cat다른 요구 사항을 충족시키지 못합니다.
이그나시오 바스케스-아 브람스

1
네 감사합니다. 그러나 cat은 원본 텍스트 파일 이름없이 각 파일의 내용을 나열하고 사이에 구분없이 각 파일의 내용을 차례로 나열합니다. 새로운 하나의 큰 파일에서 각 텍스트 파일의 내용 사이에 적어도 하나의 빈 줄이 필요합니다.
janet
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.