특정 열 크기로 텍스트를 줄 바꿈하려면 어떻게해야합니까?


141

cat test.txt | pr -w 80줄을 80 자로 줄 바꿈 하는 것과 같은 것을 사용할 수 있지만 인쇄 된 줄의 맨 위와 맨 아래에 많은 공간이 있고 일부 시스템에서는 제대로 작동하지 않습니다.

긴 줄이있는 텍스트 파일을 특정 너비로 ​​줄 바꿈하는 가장 좋은 방법은 무엇입니까?

단어를 어기는 것을 막을 수 있다면 보너스 포인트.

답변:


176

당신이 찾고있는

fold -w 80 -s text.txt
  • -w는 텍스트의 너비를 나타냅니다. 여기서 80이 표준입니다.
  • -s는 단어가 아닌 공백으로 나누도록 지시합니다.

이것이 표준적인 방법이지만 "-w"대신 "-c"가 필요한 다른 시스템이 있습니다.


OS X에서도 작동하지만 filename은 args 뒤에 있어야합니다. 감사!
rdrey

2
보조 노트에, 친절하게 텍스트 전용 회신 전자 메일의 형식을, 내가 사용 :fold -s -w 80 email.txt | sed 's/^.*$/> &/'
마르첼로 로마

2
@MarcelloRomani, 두 문자를 앞에 추가하므로 너비 78을 사용해서는 안됩니까?
nanny

1
흠 ... 그렇게 생각합니다. 그 밖으로 :) 가리키는 주셔서 감사합니다
마르첼로 로마를

2
fold동안, URL을 중단 fmt하지 않습니다.
Skippy le Grand Gourou

51

뿐만 아니라를 fold살펴보십시오 fmt. fmt텍스트를보기 좋게 만들기 위해 줄 바꿈을 지능적으로 선택하려고합니다. 긴 단어를 나누지 않고 공백으로 만 줄 바꿈합니다. 또한 인접한 줄을 연결하여 산문에는 좋지만 로그 파일이나 다른 형식의 텍스트에는 좋지 않습니다.


3
나는 특히 폴드와 비교하여 fmt -t를 좋아합니다
lkraav

15

1) 단어 분리로 고정 선 너비 보장 :

fold -w 80 <text.txt

2) 특별한 단어 분리를 사용하여 고정 선 너비를 보장합니다 (단어가 너무 커서 줄에 맞지 않는 경우에만 단어가 깨짐) :

fold -sw 80 <text.txt

3) 단어 분리없이 유망한 고정 선 너비

fmt -w 80 <text.txt

과소 평가. 대부분의 시스템에서 사용 가능합니다. 좋은데
Merc

11

원하는 것을 수행하는 또 다른 (잘 알려지지 않은) 도구는 wrapGNU Talkfilters입니다 .

wrap -w 80 < textfile

또한 (주제를 벗어난) :

인쇄 된 선의 상단과 하단에 많은 공간이 생깁니다

헤더 / 트레일러를 생략하기 위해 -t호출 pr할 때 추가하십시오 .

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

5

그리고 더 많은 서식 옵션에 대한보고 par- http://www.nicemice.net/par/


2
현재 웹 사이트가 다운되어 인터넷 아카이브와 Google 캐시가 있지만 여전히 링크보다 더 많은 것을 게시하는 것이 중요한 이유를 보여줍니다. 최소한 공식 문서에서 예제를 게시했을 수 있습니다.
phk

-1
fold -w 100 -s text.txt

100 줄까지 모든 줄을 나눠야하기 때문에 나를 위해 일했습니다.


1
당신의 대답은 다른 사람들이하지 않은 것을 어떻게 추가합니까?
Sheljohn
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.