Linuxpia/리눅스 사용 팁

sed 명령 옵션 분해 및 설명

easyfly 2026. 9. 27. 16:42
반응형

sed 명령을 분해

sed -E 's/=.*/=/' .env > .env.example

각 부분의 뜻은 다음과 같습니다.

  • sed
    • stream editor의 줄임말입니다.
    • 파일을 한 줄씩 읽어 찾아 바꾸는 도구입니다.
  • -E
    • **확장 정규표현식(Extended Regular Expression)**을 사용하겠다는 옵션입니다.
    • 이번 식은 -E 없이도 작동하지만, 복잡한 정규표현식으로 확장할 때 유용합니다.
  • 's/=.*/=/'
    • s는 substitute, 즉 치환입니다.
    • 기본 구조는 s/찾을 내용/바꿀 내용/입니다.

정규표현식 =.*는 다음 의미입니다.

  • =: 등호 자체
  • .: 임의의 문자 한 개
  • *: 바로 앞 문자가 0개 이상 반복

따라서 =.*는 첫 번째 등호부터 줄 끝까지를 뜻합니다.

예를 들면:

DB_PASSWORD=Abc123!xyz

에서 다음 부분을 찾습니다.

=Abc123!xyz

그리고 이것을 = 하나로 바꿉니다.

DB_PASSWORD=

나머지 부분은 다음과 같습니다.

  • .env
    • 입력 파일입니다.
    • 원본은 읽기만 하며 수정하지 않습니다.
  • >
    • 명령 결과를 화면 대신 파일로 보내는 출력 리다이렉션입니다.
    • 대상 파일이 없으면 만들고, 있으면 기존 내용을 덮어씁니다.
  • .env.example
    • 값이 제거된 결과를 저장할 파일입니다.

즉, 전체 의미는 다음과 같습니다.

.env의 각 줄에서 첫 번째 =부터 뒤쪽 값을 지우고, 변수명과 =만 .env.example에 저장한다.

참고로 -E는 이번 명령에서는 필수 옵션이 아닙니다. 아래 명령도 같은 결과를 냅니다.

sed 's/=.*/=/' .env > .env.example

다만 .env 안의 주석에 =가 들어 있다면 그 주석도 바뀔 수 있다는 점은 알아두어야 합니다.

반응형

'Linuxpia > 리눅스 사용 팁' 카테고리의 다른 글

df 와 df -h의 차이  (2) 2026.02.24
보안 고려 사항  (3) 2025.11.19
데이터·문서 공유 대안(Samba, 클라우드 등)  (1) 2025.11.17
로컬 웹 브라우저 연동  (2) 2025.11.15
Git을 활용한 코드 동기화  (1) 2025.11.14