Làm thế nào tôi có thể bọc văn bản ở một kích thước cột nhất định?


142

Tôi biết rằng tôi có thể sử dụng một cái gì đó như cat test.txt | pr -w 80để bọc các dòng rộng đến 80 ký tự, nhưng điều đó đặt nhiều khoảng trống ở trên cùng và dưới cùng của các dòng in và nó không hoạt động ngay trên một số hệ thống

Cách tốt nhất để buộc một tệp văn bản có các dòng dài được bọc ở một độ rộng nhất định là gì?

Điểm thưởng nếu bạn có thể giữ cho nó khỏi phá vỡ từ.

Câu trả lời:


177

Bạn đang tìm kiếm

fold -w 80 -s text.txt
  • -w cho biết chiều rộng của văn bản, trong đó 80 là tiêu chuẩn.
  • -s nói để phá vỡ tại không gian, và không bằng lời.

Đây là cách tiêu chuẩn , nhưng có những hệ thống khác, cần "-c" thay vì "-w".


Cũng hoạt động trên OS X, nhưng tên tệp cần phải được đặt sau args. Cảm ơn!
ndrey

2
Bên cạnh đó, để định dạng độc đáo các email để trả lời chỉ có văn bản, tôi sử dụng:fold -s -w 80 email.txt | sed 's/^.*$/> &/'
Marcello Romani

2
@MarcelloRomani, bạn không nên sử dụng chiều rộng 78 vì bạn đang chuẩn bị hai ký tự?
mẫu

1
Hmm ... tôi đoán vậy. Cảm ơn bạn đã chỉ ra điều đó :)
Marcello Romani

2
Lưu ý rằng foldphá vỡ các url, trong khi fmtkhông.
Skippy le Grand Gourou

51

Ngoài ra fold, hãy xem fmt. fmtcố gắng chọn ngắt dòng một cách thông minh để làm cho văn bản trông đẹp. Nó không phá vỡ các từ dài, thay vào đó nó chỉ bao bọc bởi các khoảng trắng. Nó cũng sẽ tham gia các dòng liền kề, tốt cho văn xuôi nhưng xấu cho các tệp nhật ký hoặc văn bản có định dạng khác.


3
Tôi đặc biệt thích fmt -t so với gấp
lkraav

15

1) đảm bảo độ rộng dòng cố định với ngắt từ:

fold -w 80 <text.txt

2) đảm bảo độ rộng dòng cố định với ngắt từ bất thường (một từ chỉ bị phá vỡ nếu nó quá lớn để khớp với một dòng):

fold -sw 80 <text.txt

3) hứa hẹn độ rộng dòng cố định mà không có bất kỳ ngắt từ nào (nếu từ quá lớn để vừa với một dòng, nó vẫn còn nguyên như vậy, vì vậy cuối cùng một số dòng có thể có kích thước lớn hơn bạn cần):

fmt -w 80 <text.txt

Câu trả lời không nản lòng. Có sẵn trên hầu hết các hệ thống. Đẹp một.
Merc

11

Một công cụ khác (ít được biết đến) thực hiện những gì bạn muốn là wraptừ GNU Talkfilters :

wrap -w 80 < textfile

Ngoài ra (ngoài chủ đề):

nhưng điều đó đặt rất nhiều không gian trên đầu và cuối của các dòng in

thêm -tkhi gọi prđể bỏ qua các tiêu đề / đoạn giới thiệu:

   -t, --omit-header
          omit page headers and trailers

5

Và để biết thêm các tùy chọn định dạng, hãy xem par- http://www.nicemice.net/par/


2
Hiện tại trang web đã ngừng hoạt động, có Lưu trữ Internet và bộ nhớ cache của Google nhưng điều này cho thấy lý do tại sao việc đăng nhiều hơn chỉ là các liên kết, ít nhất bạn có thể đăng các ví dụ từ tài liệu chính thức.
phk

-1
fold -w 100 -s text.txt

làm việc cho tôi khi tôi cần chia mỗi dòng cho đến 100 ký tự


1
Câu trả lời của bạn thêm gì mà những người khác không có?
Sheljohn
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.