반응형
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 |