# 유용한 sed 스크립트와 패턴들

> Clean Markdown view of GeekNews topic #5378. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=5378](https://news.hada.io/topic?id=5378)
- GeekNews Markdown: [https://news.hada.io/topic/5378.md](https://news.hada.io/topic/5378.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2021-11-15T10:32:01+09:00
- Updated: 2021-11-15T10:32:01+09:00
- Original source: [github.com](https://github.com/adrianscheff/useful-sed)
- Points: 28
- Comments: 1

## Topic Body

- 1줄만 출력

ㅤ→ sed -n '10p' file.txt

- 5번줄만 빼고 모든 라인에서 문자 치환

ㅤ→ sed '5!/s/foo/bar/' file.txt

- 특정문자로 시작하는 모든 라인에서 정규식 치환

ㅤ→ sed '/^hello/ s/h/H/' file.txt

- 5번줄부터 마지막 라인까지만 치환

ㅤ→ sed '5,$ s/foo/bar/' file.txt

- 빈파일 삭제

ㅤ→ sed '/^$/d' file

- 두 정규식 사이의 모든 라인 출력

ㅤ→ sed -nE '/^foo/,/^bar/p' file.txt

- 슬래시 포함 문자를 쉽게 찾기 위해 커스텀 딜리미터 사용

ㅤ→ sed 's_/bin/bash_/bin/sh_' file.txt

- 공백으로 나눠진 중복 문자열 제거(세번 중복된거는 제외)

ㅤ→ sed -E 's_([a-zA-Z0-9_]+) \1_\1_ig' f1

- 특정 패턴을 찾아서 변경후, 수정된 것만 다른 파일로 저장

ㅤ→ sed 's_foo_bar_w replaced.txt' file.txt

- 여러개 동시에 치환

ㅤ→ sed -e 's_foo_bar_' -e 's_hello_HELLO_' file.txt

- 두개 키워드 사이의 모든 코멘트 제거하고 빈줄 넣기

ㅤ→ sed -E '/start/,/end/ s/#.*//' file.txt

- #로 시작하는 모든 주석 지우기

ㅤ→ sed -E '/^#/d' f1

- 특정 패턴이 나타날때까지만 출력하기

ㅤ→ sed '/start/q' file.txt

- 특정 라인 이후에 파일을 삽입

ㅤ→ sed '5 r newfile.txt' file.txt

- 특정 정규식 매칭부분 이후의 라인에 텍스트 추가

ㅤ→ sed '/foo/a\AFTER FOO' file.txt

- 특정 정규식 매칭된 라인을 교체

ㅤ→ sed '/foo/c\FOO IS CHANGED' file.txt

- #으로 시작하는 모든 코멘트를 다른 파일에 저장

ㅤ→ sed -E '/^#/w comments.txt' file.txt

- 모든 두번째 줄만 출력(한줄건너 한줄, 3/4 등으로 변경 가능)

ㅤ→ sed -n '1~2p' file.txt

- 파일을 직접 수정하지만 백업을 생성

ㅤ→ sed -i.bak 's/hello/HELLO/' file.txt

- 정규식 매칭 이후에 두개의 빈줄 추가

ㅤ→ sed -E '/^#/G G' file.txt

## Comments



### Comment 7596

- Author: tribela
- Created: 2021-11-15T11:55:52+09:00
- Points: 1

슬래시 이외의 다른 문자도 구분자로 사용할 수 있다는 건 정말 필수 팁입니다.

apt 저장소 URL 바꿀 때라든가 꽤 자주 슬래시를 포함할 일이 있거든요
