본문 바로가기
리눅스

fmt (Unix)

by 다움위키 2023. 12. 19.

유닉스, Plan 9, Inferno, 및 유닉스-계열 운영 시스템에서 fmt 명령은 인간이 읽을 수 있도록 자연어 텍스트의 형식을 지정하기 위해 사용됩니다.

Overview

명령은 전통적으로 작성 후 배달 전에 전자 메일 메시지의 형식을 다시 지정하기 위해 사용되었습니다. 그 구문은 다양한 유닉스에서 유사하지만, 동일하지는 않습니다. fmt는 입력 줄을 fold (GNU Core Utilities에서)처럼 정확하게 래핑하기보다는 가능한 한 목표 너비에 가깝게 접근하는 각 줄의 길이로 전역적으로 최적이고 균형 잡힌 출력을 생성하기 위해 입력 줄을 끊고 채우고 결합하려고 시도합니다.

대부분의 fmt 구현에서, 단어 포장 최적화 절차는 보통 두 기준: 목표 출력 줄 너비와 허용 가능한 최대 줄 너비 (최적화를 위한 공간을 제공하기 위해 이전 것보다 커야 함)을 필요로 합니다. 이들 두 가지 옵션을 동시에 제공하는 것이 항상 가능한 것은 아닙니다. 예를 들어, GNU fmt의 초기 버전은 -w 스위치로 제공되는 최대 너비 옵션만 허용하거나, 호환성을 위한 첫 번째 명령줄 옵션으로 -digits를 직접 사용할 수 있습니다 (나중 버전에서는 -g를 목표 너비를 지정하기 위해 사용하고 -w를 최대 너비를 지정하기 위해 사용합니다). 자세한 예제에 대해 fmt 솔라리스 매뉴얼 페이지와 fmt FreeBSD 매뉴얼 항목을 참조하고, 대부분의 리눅스 배포판에 포함된 GNU fmt 유틸리티의 최신 문서와 비교하십시오. Plan 9 fmt 매뉴얼 페이지도 참조하십시오.

par와 달리, fmt는 유니코드를 지원하지 않고, 텍스트 정당화를 지원하지 않습니다.

Example

다음과 같은 텍스트가 입력으로 주어지면:

Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Curabitur dignissim
venenatis pede. Quisque dui dui, ultricies ut, facilisis non, pulvinar non. Duis quis arcu a purus volutpat iaculis. Morbi id dui in diam ornare
dictum. Praesent consectetuer vehicula ipsum. Praesent tortor massa, congue et,
ornare in, posuere eget, pede.

Vivamus rhoncus. Quisque lacus. In hac habitasse platea dictumst. Nullam mauris
tellus, sollicitudin non, semper eget, sodales non, pede. Phasellus varius
ullamcorper libero. Fusce ipsum lorem, iaculis nec, vulputate vitae, suscipit
vel, tortor. Cras varius.

Nullam fringilla pellentesque orci. Nulla eu ante pulvinar velit rhoncus
lacinia. Morbi fringilla lacus quis arcu. Vestibulum sem quam, dapibus in,
fringilla ut, venenatis ut, neque.

이것을 ffmt -w 50을 통해 전달한 후, 각 줄의 너비는 최대 50자이고 텍스트는 이 제약 조건 내에서 흐릅니다:

Lorem ipsum dolor sit amet, consectetuer
adipiscing elit. Curabitur dignissim venenatis
pede. Quisque dui dui, ultricies ut, facilisis
non, pulvinar non, purus. Duis quis arcu a
purus volutpat iaculis. Morbi id dui in diam
ornare dictum. Praesent consectetuer vehicula
ipsum. Praesent tortor massa, congue et, ornare
in, posuere eget, pede.

Vivamus rhoncus. Quisque lacus. In hac
habitasse platea dictumst. Nullam mauris tellus,
sollicitudin non, semper eget, sodales non,
pede. Phasellus varius ullamcorper libero. Fusce
ipsum lorem, iaculis nec, vulputate vitae,
suscipit vel, tortor. Cras varius.

Nullam fringilla pellentesque orci. Nulla eu ante
pulvinar velit rhoncus lacinia. Morbi fringilla
lacus quis arcu. Vestibulum sem quam, dapibus in,
fringilla ut, venenatis ut, neque.

External links