| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | ||
| 6 | 7 | 8 | 9 | 10 | 11 | 12 |
| 13 | 14 | 15 | 16 | 17 | 18 | 19 |
| 20 | 21 | 22 | 23 | 24 | 25 | 26 |
| 27 | 28 | 29 | 30 |
Tags
- terminal
- Unix명령어
- Solaris
- 자바스크립트
- js
- coreutils
- tcsh
- UnixCommand
- linuxcommand
- linux
- UNIX
- bash
- 유닉스
- php
- 쉘스크립트
- sysadmin
- environment
- 정규표현식
- 리눅스명령어
- 시스템관리
- 사용자관리
- 명령어
- 리눅스
- 유닉스명령어
- 파일시스템
- 터미널
- shell
- PackageManagement
- JavaScript
- cups
Archives
- Today
- Total
ioerror
unexpand 사용법 및 옵션 - 공백 문자를 탭 문자로 변환하는 유닉스/리눅스 명령어 본문
반응형

unexpand - Convert Spaces to Tabs
텍스트 파일이나 표준 입력으로 들어오는 공백 문자(Space) 연속체를 탭 문자(Tab)로 변환하는 유닉스/리눅스 표준 유틸리티이다. 소스 코드 포맷팅 정리가 필요하거나 탭 기반 들여쓰기 규칙을 적용할 때 사용된다. 기본적으로 줄 시작 부분의 공백만 탭으로 변환하지만, 옵션을 통해 파일 전체의 공백을 변환하도록 지정할 수 있다. POSIX 표준을 따르는 대부분의 유닉스 계열 운영체제에서 기본 제공된다.
1. unexpand 용도
- 스페이스(공백) 들여쓰기가 사용된 소스 코드를 탭 들여쓰기로 일괄 변환하다.
- 문서나 데이터 파일의 저장 용량을 줄이고 탭 스타일 규칙을 강제하다.
- 개발 프로젝트의 포맷팅 스타일 가이드 준수 작업에 사용되다.
2. 명령어 서식
Bash
unexpand [OPTION]... [FILE]...
3. 명령어 옵션
| 옵션 | 설명 | 사용가능 OS 및 쉘 |
| -a, --all | 줄 시작 부분뿐만 아니라 문장 중간에 위치한 모든 연속 공백을 탭으로 변환하다. | All |
| --first-only | 줄 시작 부분의 연속 공백만 탭으로 변환하다. (기본 동작 방식) | [Linux GNU] |
| -t N, --tabs=N | 탭 크기를 기본값인 8이 아닌 N개의 공백으로 지정하여 변환하다. | All |
| -t LIST, --tabs=LIST | 탭 위치를 콤마로 구분된 리스트로 명시적으로 지정하다. | All |
| -U, --unit-at-a-time | 입력 데이터를 유니코드 문자가 아닌 바이트 단위로 처리하다. | [FreeBSD] [macOS] |
| --help | 명령어 도움말 정보를 출력하고 종료하다. | [Linux GNU] |
| --version | 버전 정보를 출력하고 종료하다. | [Linux GNU] |
옵션 사용 예시
Bash
# 기본 사용: input.txt의 선두 공백을 탭으로 변환하여 output.txt에 저장
unexpand input.txt > output.txt
# -a 옵션: 줄 전체의 모든 연속 공백을 탭으로 변환
unexpand -a code.py > code_tabs.py
# -t 옵션: 탭 너비를 4개 공백 기준으로 지정하고 변환 결과 확인 (cat -T로 탭을 ^I로 표시)
unexpand -t 4 input.txt | cat -T
# ^Ifunction test() {
# ^I^Ireturn true;
# }
# 변환 결과 확인 설명:
# ^I : 공백 4개가 1개의 탭 문자(Tab, \t)로 성공적으로 변환되었음을 나타냄
4. 명령어 특이사항(유의사항)
- 기본 동작은 줄의 시작 부분(Leading spaces)에 있는 공백만 변환하다. 코드 중간이나 문장 사이의 공백까지 모두 변환하려면 반드시 -a (--all) 옵션을 부여해야 하다.
- 기본 탭 간격은 8칸이다. 4칸이나 2칸 들여쓰기 기준 소스 코드를 처리할 때는 -t 4 또는 -t 2 옵션을 명시하지 않으면 정렬이 깨지는 현상이 발생하다.
- Stack Overflow 및 GitHub 이슈에서 가장 빈번하게 언급되는 문제는 파이썬(Python) 소스 코드 처리 시 공백과 탭이 혼용되어 IndentationError가 발생하는 케이스이다. unexpand 처리 전후에 cat -A 또는 cat -T 명령으로 탭 문자가 올바르게 입력되었는지 검증해야 하다.
관련 명령어들
- expand: 탭 문자를 지정된 개수의 공백 문자로 변환하다.
- fold: 각 입력 줄의 너비를 지정된 자릿수로 제한하여 줄 바꿈하다.
- tabify: 일부 편집기나 환경에서 탭 변환 기능을 제공하는 유사 도구이다.
- cat: -T 또는 -A 옵션을 사용하여 파일 내 탭 문자를 Visual 형태로 출력하다.
https://ioerror.tistory.com/entry/UNIX-Linux-Command-Reference
UNIX & Linux Command Reference
유닉스 / 리눅스 명령어 표유닉스와 리눅스 환경에서 자주 사용되는 필수 명령어들을 완벽하게 정리한다. 서버 관리, 프로그래밍, 일상적인 시스템 운영 등 어떤 목적이든 터미널 환경을 능숙하
ioerror.tistory.com
반응형
'OS' 카테고리의 다른 글
| unset 사용법 및 옵션 - 쉘 변수 및 함수 제거 명령어 (0) | 2026.07.31 |
|---|---|
| uniq 사용법 및 옵션 - 중복 행 제거 및 집계 (0) | 2026.07.31 |
| uncompress 사용법 및 옵션 - LZW 알고리즘으로 압축된 .Z 파일을 해제하는 명령 (0) | 2026.07.31 |
| unalias 사용법 및 옵션 - 기존에 설정된 명령어 별칭(alias) 제거 (0) | 2026.07.31 |
| umountall 사용법 및 옵션 - 마운트된 모든 파일 시스템의 일괄 해제 (0) | 2026.07.31 |
Comments