🔍 sed 's/#.*//'
의 동작 방식
이 명령어는 문자열에서 #
이후의 모든 내용을 삭제하는 역할을 해.
✅ sed
기본 문법
sed 's/패턴/변경할문자열/옵션'
s
→substitute(치환)
명령어패턴
→ 변경할 문자열을 찾기 위한 정규 표현식변경할문자열
→ 찾은 패턴을 어떤 문자열로 변경할지 정의 (//
이면 제거)옵션
→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
📌 첫 번째 #
이후부터 모든 문자열이 삭제됨.
🚀 결론
✔ #
이후의 모든 내용을 제거하는 역할
✔ .*
(정규 표현식) 사용으로 #
뒤 모든 문자열을 삭제 가능
✔ 파일에서 주석을 제거할 때 매우 유용한 명령어
'IT > 리눅스' 카테고리의 다른 글
쉘스크립트 - echo 로 멀티 라인 문자열 저장하는 방법 EOF (0) | 2025.02.06 |
---|---|
grep 으로 문자열 검색하기 (0) | 2025.01.22 |
split - 용량 큰 로그 파일, 텍스트 파일 나누기 (0) | 2025.01.22 |
tcl - regsub 문자열 치환 함수 (0) | 2025.01.13 |
쉡 스크립트 if []; then 에 등장하는 세미콜론의 의미? (0) | 2025.01.09 |