Kết hợp nhiều tệp văn bản thành một tệp


10

Tôi đang sử dụng prlệnh unix để kết hợp nhiều tệp văn bản thành một tệp văn bản:

pr -F *files > newfile

Mỗi tệp là một độ dài khác nhau, một số dòng khác nhau. Tôi rất hài lòng với kết quả này, tôi thích rằng nó bao gồm tên của tệp văn bản gốc theo sau là nội dung của tệp đó. Tuy nhiên, tôi muốn loại bỏ các dòng trống ở giữa tên của tệp văn bản gốc và nội dung của nó. Tôi chỉ muốn các dòng trống giữa các tệp văn bản khác nhau để phân tách từng tệp. Ngoài ra, nó in ký tự ^Lsau nội dung của mỗi tệp văn bản và tôi muốn loại bỏ ký tự đó.

Mỗi tệp đọc trong cũng được cung cấp một số 'trang'. Chỉ có một tệp dài hơn mặc định 66 dòng. tập tin đó cuối cùng bị nhổ vào 2 'trang' và được chia thành 2 phần chia cho các dòng trống. Có thể viết văn bản đó liên tục mà không bị chia tách?

Cảm ơn bạn đã giúp đỡ!

Câu trả lời:


9

Bạn có thể sử dụng tiện ích AWK:

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

Nguồn: /programming/1653063/how-do-i-include-a-blank-line-b between-files-im-concatenating-with-cat


cảm ơn bạn đã gợi ý tuy nhiên, -T không được công nhận. Tôi đang làm việc trên mac os x nếu vấn đề đó.
janet

Thật không may, -t tạo cùng loại tệp mà mèo thực hiện, không ngắt giữa các tệp văn bản được đọc.
janet

cảm ơn bạn điều đó chỉ giúp tôi có được những gì tôi muốn! xin lỗi, tôi nhận ra rằng bây giờ tôi đang đăng sai địa điểm, vì tôi thấy thông báo về việc lạc đề. tôi cảm ơn bạn đã giúp đỡ!
janet

12

Để có các dòng trống tập tin betwen:

cat file1 newline file2 newline file3 > newfile

Trong đó 'dòng mới' là tệp có dòng trống.


Bạn có thể làm rõ làm thế nào để làm cho các tập tin newline? Một số chỉnh sửa văn bản sẽ tự động nối thêm một ký tự cuối dòng vào dòng cuối cùng, và một số khác thì không, vì vậy một số người có thể gặp sự cố khi tạo tệp này đúng cách. Nói cách khác: một tệp có độ dài bằng không có dòng không, hay một dòng?
Eliah Kagan

vim newline trong vim: wq Thats nó.
Darius itkevičius

Miễn là tôi thấy, "cat" sẽ tự động đặt dòng mới giữa mỗi tệp.
myuce

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

Ở trên sẽ nối các nội dung của tệp eacb txt vào concatenated.txt thêm một dòng mới giữa chúng.


0

Bạn có thể sử dụng catđể kết xuất văn bản của các tệp thành một tệp với:

cat file1 file2 file3 > newfile

2
Thật không may cat, không đáp ứng bất kỳ yêu cầu nào khác.
Ignacio Vazquez-Abrams

1
Vâng, cảm ơn. nhưng cat chỉ liệt kê nội dung của từng tệp mà không có tên tệp văn bản gốc và nó cũng liệt kê từng nội dung của từng tệp mà không có dấu ngắt giữa. tôi cần ít nhất 1 dòng trống giữa các nội dung của mỗi tệp văn bản trong một tệp lớn mới.
janet
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.