입력하다

입력하다

Ubuntu에서 너비(마지막 줄 제외)에 맞게 텍스트 형식을 다시 지정하고 필요한 경우 공백을 추가하려면 어떻게 해야 합니까? 내가 얻을 수 있는 가장 가까운 것은 with 이지만 fmt --width=64단어 사이에 공백이 추가되지는 않습니다.

입력하다

  • 에서 발췌, man zip모든 줄 바꿈을 제거하고 이중 공백을 단일 공백으로 바 꾸었습니다.
Do not operate on files modified prior to the specified date, where mm is the month (00-12), dd is the day of the month (01-31), and yyyy is the year. The ISO 8601 date format yyyy-mm-dd is also accepted. For example:

fold --width=64산출

  • 이것이 바람직하지 않다고 주장하다
Do not operate on files modified prior to the specified date, wh
ere mm is the month (00-12), dd is the day of the month (01-31),
 and yyyy is the year. The ISO 8601 date format yyyy-mm-dd is al
so accepted. For example:

fmt --width=65산출

  • 거의 완벽하지만 단어 사이에 공백을 추가해야 함
Do not operate on files modified prior to the specified date,
where mm is the month (00-12), dd is the day of the month
(01-31), and yyyy is the year. The ISO 8601 date format
yyyy-mm-dd is also accepted. For example:

원하는 출력

  • 다음에서 가져온 스니펫man zip
  • 줄이 지정된 너비를 따르고 단어의 간격이 어느 정도 균등하다면 이중/삼중 공백을 어디에 삽입하는지는 중요하지 않습니다.
Do not operate on files modified prior to  the  specified  date,
where  mm  is  the  month  (00-12),  dd  is the day of the month
(01-31), and  yyyy  is  the  year.   The  ISO 8601  date  format
yyyy-mm-dd is also accepted.  For example:

답변1

작업을 수행하려면 nroff를 사용하는 것이 좋습니다. 다음은 infile이라는 파일의 텍스트와 함께 이를 사용하는 방법에 대한 예입니다.

$ 2>/dev/null nroff <(echo .pl 1 ; echo .ll 40) infile
Do  not  operate on files modified prior
to the specified date, where mm  is  the
month  (00‐12),  dd  is  the  day of the
month (01‐31), and yyyy is the year. The
ISO  8601 date format yyyy‐mm‐dd is also
accepted. For example:

.pl 1 roff 태그는 페이지 높이를 한 줄로 설정하여 페이징을 비활성화합니다.

.ll 40은 줄 길이를 40자로 설정합니다.

nroff는 탁월한 사용자 정의 가능성을 갖춘 특수 마크업 포맷 유틸리티입니다.

답변2

현지화된 하이픈에 대한 지원을 추가하지 않으면 만족스럽지 못할 것입니다. 65자는 너무 짧습니다. 특히 텍스트(사용 중인 발췌문과 달리)가 더 긴 복합 단어로 구성된 경우 더욱 그렇습니다. 한 줄에 10개의 글자가 있다는 것을 증명하려고 하면 독일어와 핀란드어 사용자는 당신을 싫어할 것입니다. 왜냐하면 그것은 35자에서 40자 사이의 두 단어이기 때문입니다.

어쨌든, 당신이 상관하지 않는다고 가정하면저것조판에 관해서는 그다지 어렵지 않습니다. Python은 textwrap모듈을 제공하며 "줄로 분할"할 수 있습니다.최대65자"인 경우 누락된 공백을 추가하기만 하면 됩니다.

그것은 마치이것스크립트. (천만에요!)

스크립트를 다운로드하고 justify.py( $PATH스크립트의 전체 경로를 지정하지 않으려면 해당 경로를 어딘가에 넣으십시오) 및 chmod 755 /path/to/justify.py. 그럼 당신은 실행할 수 있습니다

echo 'Do not operate on files modified prior to the specified date, where mm is the month (00-12), dd is the day of the month (01-31), and yyyy is the year. The ISO 8601 date format yyyy-mm-dd is also accepted. For example:' \
     | /path/to/justify.py 65 \
     | cowsay -n

얻기 위해

 ___________________________________________________________________ 
/ Do  not operate  on files modified  prior to the specified  date, \
| where  mm  is  the  month (00-12),  dd  is the  day  of the month |
| (01-31), and yyyy is the year. The ISO 8601 date format  yyyy-mm- |
\ dd is also accepted. For example:                                 /
 ------------------------------------------------------------------- 
        \   ^__^
         \  (oo)\_______
            (__)\       )\/\
                ||----w |
                ||     ||

나는 계속하도록 선택했습니다 -. 이 작업을 원하지 않으면 wrapper = textwrap.Textwrapper(…줄을 수정하여 break_on_hyphens=False.

관련 정보