본문 바로가기

🔍 sed 's/#.*//'의 동작 방식

이 명령어는 문자열에서 # 이후의 모든 내용을 삭제하는 역할을 해.


sed 기본 문법

sed 's/패턴/변경할문자열/옵션'
  • ssubstitute(치환) 명령어
  • 패턴 → 변경할 문자열을 찾기 위한 정규 표현식
  • 변경할문자열 → 찾은 패턴을 어떤 문자열로 변경할지 정의 (// 이면 제거)
  • 옵션g를 추가하면 여러 개의 패턴을 한 번에 변경 가능

🚀 sed 's/#.*//' 상세 분석

sed 's/#.*//'
  • ## 기호를 찾음 (주석 시작 부분)
  • .*# 이후의 모든 문자(.)를 0개 이상(*) 찾음
  • //#부터 끝까지 찾은 문자열을 빈 문자열로 치환 (즉, 삭제)

🛠 예제 테스트

🔹 기본적인 동작

echo "MAX_PARALLEL = 4 # 최대 동시 실행 개수" | sed 's/#.*//'

🔹 출력 결과:

MAX_PARALLEL = 4

📌 # 이후의 최대 동시 실행 개수가 사라짐.


🔹 #가 없는 경우 (변경 없음)

echo "PROJECT_HOME = /home/user/project" | sed 's/#.*//'

🔹 출력 결과:

PROJECT_HOME = /home/user/project

📌 #가 없으면 원래 문자열 그대로 유지됨.


🔹 #가 여러 개 있는 경우

echo "VAR = value # comment # more comments" | sed 's/#.*//'

🔹 출력 결과:

VAR = value

📌 첫 번째 # 이후부터 모든 문자열이 삭제됨.


🚀 결론

# 이후의 모든 내용을 제거하는 역할
.*(정규 표현식) 사용으로 # 뒤 모든 문자열을 삭제 가능
파일에서 주석을 제거할 때 매우 유용한 명령어

B로그0간

개발 관련 글과 유용한 정보를 공유하는 공간입니다.