본문으로 건너뛰기

줄 번호 추가/제거

텍스트에 줄 번호를 추가하거나 제거하는 무료 온라인 도구입니다.

Use Cases

  • Code snippets and examples
  • Documentation and tutorials
  • Ordered lists and instructions
  • Log files and debugging
  • Text file analysis

Separator Examples

Dot (.):
1. First line
2. Second line
3. Third line
Parenthesis ():
1) First line
2) Second line
3) Third line
Pipe (|):
1| First line
2| Second line
3| Third line

주요 기능

  • 추가/제거 모드: 줄 번호 추가 또는 제거
  • 시작 번호 설정: 원하는 번호부터 시작
  • 구분자 선택: 6가지 구분자 스타일
  • 정렬 옵션: 패딩으로 깔끔한 정렬
  • 자동 감지: 제거 모드에서 자동으로 번호 패턴 인식
  • 즉시 복사: 결과를 클릭 한 번으로 복사

구분자 스타일

1. 점 (Dot)

1. First line
2. Second line
3. Third line

사용처: 일반 목록, 문서

2. 괄호 (Parenthesis)

1) First line
2) Second line
3) Third line

사용처: 순서형 목록, 단계별 가이드

3. 콜론 (Colon)

1: First line
2: Second line
3: Third line

사용처: 로그 파일, 데이터 분석

4. 파이프 (Pipe)

1| First line
2| Second line
3| Third line

사용처: 코드 예제, 터미널 출력

5. 대괄호 (Bracket)

1] First line
2] Second line
3] Third line

사용처: 기술 문서, 참조

6. 중괄호 (Brace)

1} First line
2} Second line
3} Third line

사용처: 특수 포맷, 고유 스타일

정렬 옵션

패딩 없음

1. Line one
2. Line two
...
98. Line ninety-eight
99. Line ninety-nine
100. Line one hundred

패딩 적용

  1. Line one
2. Line two
...
98. Line ninety-eight
99. Line ninety-nine
100. Line one hundred

패딩을 사용하면 모든 번호가 같은 폭으로 정렬됩니다.

사용 사례

1. 코드 스니펫

1. def fibonacci(n):
2. if n <= 1:
3. return n
4. return fibonacci(n-1) + fibonacci(n-2)

2. 문서 작성

1. 소개
2. 설치 방법
3. 사용법
4. 문제 해결
5. 참고 자료

3. 로그 파일 분석

1: [2024-01-15 10:30:00] INFO: Server started
2: [2024-01-15 10:30:05] INFO: Connection established
3: [2024-01-15 10:30:10] ERROR: Timeout occurred
4: [2024-01-15 10:30:15] INFO: Retry attempt 1

4. 가사 또는 시

1| 첫 번째 줄
2| 두 번째 줄
3| 세 번째 줄
4| 네 번째 줄

5. 레시피 단계

1) 재료를 준비합니다
2) 팬을 예열합니다
3) 재료를 넣고 볶습니다
4) 5분간 조리합니다
5) 접시에 담아 냅니다

프로그래밍 예제

JavaScript

// 줄 번호 추가
function addLineNumbers(text, start = 1, separator = '.') {
const lines = text.split('\n');
const maxDigits = String(start + lines.length - 1).length;

return lines.map((line, index) => {
const lineNumber = start + index;
const padded = String(lineNumber).padStart(maxDigits, ' ');
return `${padded}${separator} ${line}`;
}).join('\n');
}

// 줄 번호 제거
function removeLineNumbers(text) {
const lines = text.split('\n');
return lines.map(line => {
return line.replace(/^\s*\d+[.:)|\]}\s]\s*/, '');
}).join('\n');
}

// 사용 예
const text = "Hello\nWorld\nTest";
const numbered = addLineNumbers(text, 1, '.');
console.log(numbered);
/*
1. Hello
2. World
3. Test
*/

const removed = removeLineNumbers(numbered);
console.log(removed);
/*
Hello
World
Test
*/

Python

def add_line_numbers(text, start=1, separator='.', padding=True):
lines = text.split('\n')
max_digits = len(str(start + len(lines) - 1))

result = []
for i, line in enumerate(lines):
line_number = start + i
if padding:
padded = str(line_number).rjust(max_digits)
else:
padded = str(line_number)
result.append(f"{padded}{separator} {line}")

return '\n'.join(result)

def remove_line_numbers(text):
import re
lines = text.split('\n')
return '\n'.join([
re.sub(r'^\s*\d+[.:)|\]}\s]\s*', '', line)
for line in lines
])

# 사용 예
text = "Hello\nWorld\nTest"
numbered = add_line_numbers(text, 1, '.', True)
print(numbered)

고급 팁

1. 특정 줄만 번호 매기기

# 빈 줄 제외
def add_numbers_skip_empty(text, start=1):
lines = text.split('\n')
number = start
result = []

for line in lines:
if line.strip(): # 빈 줄이 아니면
result.append(f"{number}. {line}")
number += 1
else:
result.append(line)

return '\n'.join(result)

2. 역순 번호

# 마지막 줄이 1번
def add_reverse_numbers(text):
lines = text.split('\n')
total = len(lines)

return '\n'.join([
f"{total - i}. {line}"
for i, line in enumerate(lines)
])

3. 홀수/짝수 번호만

# 홀수 줄만 번호
def add_odd_numbers(text):
lines = text.split('\n')
return '\n'.join([
f"{i*2+1}. {line}" if i % 2 == 0 else line
for i, line in enumerate(lines)
])

실용 시나리오

시나리오 1: 코드 리뷰

용도: 코드 리뷰 시 특정 줄 참조

# 리뷰어
10번 줄의 로직을 개선해주세요.
25-30번 줄은 함수로 분리하면 좋겠습니다.

시나리오 2: 교육 자료

용도: 단계별 설명

1. 변수 x를 선언합니다
2. x에 값을 할당합니다
3. x를 출력합니다

시나리오 3: 회의록

용도: 안건별 번호

1) 지난 회의 리뷰
2) 신규 프로젝트 논의
3) 예산 검토
4) 다음 회의 일정

시나리오 4: 테스트 케이스

용도: 테스트 순서

1: 로그인 테스트
2: 데이터 입력 테스트
3: 저장 기능 테스트
4: 삭제 기능 테스트

자주 묻는 질문

Q: 특정 번호부터 시작할 수 있나요?

A: 네, "시작 번호" 옵션에서 원하는 번호를 설정하세요.

Q: 제거 시 모든 번호 형식을 인식하나요?

A: 네, 일반적인 패턴(1., 1), 1:, 1| 등)을 모두 인식합니다.

Q: 중간에 빈 줄은 어떻게 되나요?

A: 빈 줄도 번호가 매겨집니다. 건너뛰려면 수동으로 처리하세요.

Q: 매우 긴 텍스트도 처리 가능한가요?

A: 네, 브라우저 메모리 한도 내에서 가능합니다.

관련 도구