Linux / 명령어 / fmt - 일반 텍스트 문단의 줄바꿈 조정

fmt는 일반 텍스트 문단의 줄 길이를 다시 맞춰 읽기 쉬운 형태로 출력합니다. 줄바꿈이 제각각인 메모나 초안을 정리할 때 사용할 수 있습니다.

fmt 명령어란?

문단을 재배치하는 도구이므로 의미 있는 줄 경계가 있는 소스 코드, CSV, Markdown 표나 로그에는 적합하지 않습니다. 원본 파일은 기본적으로 수정하지 않고 조정된 텍스트를 출력합니다.

기본 문법

fmt [옵션] [파일 ...]

설치된 구현과 옵션은 배포판에 따라 다를 수 있습니다. man fmt으로 현재 시스템의 설명을 확인하세요.

사용 예제

기본 문단 정리

입력 문단의 줄을 일반적인 읽기 폭으로 재배치합니다.

fmt notes.txt

줄 폭 지정

약 60열을 목표로 문단을 다시 접습니다.

fmt -w 60 draft.txt

출력 별도 저장

원본을 유지하고 결과를 새 파일에 저장합니다.

fmt -w 72 draft.txt > draft-formatted.txt

문단을 다시 접은 결과 이해하기

fmt는 단순히 지정 폭에서 자르는 것이 아니라 문단의 단어 사이를 다시 배치합니다. 아래 예제는 긴 한 행을 폭 20자 안팎의 여러 행으로 만듭니다.

printf 'one two three four five six\n' | fmt -w 20

예시 출력(단어 배치는 구현과 옵션에 따라 달라질 수 있음):

one two three four
five six

fmt는 단어를 무조건 중간에서 자르는 도구가 아닙니다. 고정 폭으로 문자 위치를 자르려면 fold를 사용하세요. 코드, 표, 들여쓰기처럼 공백 구조가 중요한 텍스트에는 문단 재배치를 적용하기 전에 결과를 미리 확인해야 합니다.

주요 옵션과 형식

옵션·형식 설명
-w N 목표 줄 너비를 N열로 지정합니다.
-s 짧은 줄을 합치지 않고 긴 줄만 나눕니다.
-u 단어 간격을 균일하게 조정합니다.
-p 접두어 지정한 접두어가 있는 행만 대상으로 삼습니다.

사용할 때 주의할 점

fmt는 서식의 의미를 알지 못하므로 목록 들여쓰기, 코드 블록, 인용문이 있는 문서는 결과를 검토해야 합니다. 문자 폭이 화면에서 보이는 폭과 다를 수 있으므로 한글·넓은 문자 입력도 확인하세요.

자주 묻는 질문

fmt가 원본 파일을 고치나요?

아니요. 기본은 결과를 표준 출력에 보냅니다. 별도 파일로 저장한 뒤 확인하세요.

공식 문서

옵션의 정확한 동작과 구현별 차이는 fmt 관련 공식 문서에서 확인할 수 있습니다.

같은 카테고리의 다른 글
Linux / 명령어 / paste - 파일의 행을 가로로 결합

Linux / 명령어 / paste - 파일의 행을 가로로 결합

Linux paste 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / sort - 텍스트 행 정렬

Linux / 명령어 / sort - 텍스트 행 정렬

Linux sort 명령어의 기본 문법과 실제 사용 예제를 설명합니다. 주요 옵션과 결과를 해석할 때 주의할 점을 확인할 수 있습니다.

Linux / 명령어 / alias - 명령어 별칭 만들기

Linux / 명령어 / alias - 명령어 별칭 만들기

Bash alias 명령어로 자주 쓰는 명령과 옵션 조합에 짧은 별칭을 만드는 방법을 설명합니다. 별칭 저장, 우회, 함수와의 차이 및 확장되지 않는 경우도 정리합니다.

Linux / 명령어 / truncate - 파일 크기 줄이기와 늘리기

Linux / 명령어 / truncate - 파일 크기 줄이기와 늘리기

Linux truncate 명령어로 파일 크기를 지정하거나 늘리고 줄이는 방법을 설명합니다. 희소 파일, 상대 크기 조정, 기준 파일과 같은 크기로 맞추는 방법 및 데이터 손실 주의점을 알아봅니다.

Linux 강좌 / 하드 링크와 심볼릭 링크 이해하기 - 차이와 생성 실습

Linux 강좌 / 하드 링크와 심볼릭 링크 이해하기 - 차이와 생성 실습

하드 링크와 심볼릭 링크의 구조적 차이를 inode와 경로로 설명하고, 링크를 직접 만들어 이름 변경 후 동작까지 확인합니다.

Linux / 명령어 / env - 환경 변수 설정과 명령 실행

Linux / 명령어 / env - 환경 변수 설정과 명령 실행

Linux env 명령어로 환경 변수를 추가·제거하거나 깨끗한 환경에서 프로그램을 실행하는 방법을 설명합니다. env -i·-u·-C, shebang 활용과 printenv와의 차이를 다룹니다.

Linux 강좌 / 파일과 디렉터리 관리 - 생성·복사·이동·삭제

Linux 강좌 / 파일과 디렉터리 관리 - 생성·복사·이동·삭제

실습 폴더에서 파일과 디렉터리를 만들고 복사·이동·삭제해 봅니다. 덮어쓰기와 삭제 전에 경로와 결과를 확인하는 습관도 익힙니다.

Linux 강좌 / APT와 DNF로 패키지 설치·업데이트하기

Linux 강좌 / APT와 DNF로 패키지 설치·업데이트하기

Debian·Ubuntu의 APT와 Rocky Linux의 DNF로 패키지를 검색·설치·업데이트·제거하는 방법을 비교합니다. 저장소와 의존성, 업데이트 전 확인할 항목을 다룹니다.

Linux / 명령어 / fsck - 파일 시스템 오류 검사와 복구 시 주의점

Linux / 명령어 / fsck - 파일 시스템 오류 검사와 복구 시 주의점

Linux fsck 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.

Linux / 명령어 / sync - 버퍼에 남은 쓰기 데이터 저장 요청

Linux / 명령어 / sync - 버퍼에 남은 쓰기 데이터 저장 요청

Linux sync 명령어의 기능과 기본 문법을 설명합니다. 실제 사용 예제, 주요 옵션과 작업 전 확인할 점을 알아봅니다.