sed

손성훈·2021년 6월 25일
0

linux-command

목록 보기
2/7
post-thumbnail

텍스트 검색, 치환, 추가, 제거 등 다양한 기능을 지원하는 편집기이다.

예제

치환

# 각 줄에서 첫 번째로 나타난 unix를 linux로 바꾼다.
sed -n -e 's/unix/linux/' geekfile.txt
# 2번째로 나타난 패턴만 바꾼다.
sed -n -e 's/unix/linux/2' geekfile.txt
# 해당 패턴이 나타난 모든 부분을 바꾼다.
sed -n -e 's/unix/linux/g' geekfile.txt
# 3번째로 나타난 패턴부터 마지막 패턴까지 모두 바꾼다.
sed -n -e 's/unix/linux/3g' geekfile.txt
# 해당 패턴이 나타난 모든 부분을 대소문자를 구별하지 않고 바꾼다.
sed -n -e 's/unix/linux/gi' geekfile.txt

제거

# unix가 포함된 줄들을 지운다.
sed -n -e '/unix/d' geekfile.txt
# unix가 있는 줄만 지우지 않는다.
sed -n -e '/unix/!d' geekfile.txt
# 처음 두 줄을 지운다.
sed -n -e '1,2d' geekfile.txt
# 공백인 줄을 삭제한다.
sed -n -e '/^$/d' geekfile.txt

출력

# 첫 번째 줄만 출력한다.
sed -n -e '1p' geekfile.txt
# 첫 번째 줄부터 세 번째 줄까지 출력한다.
sed -n -e '1,3p' geekfile.txt
# 첫 번째 줄부터 마지막 줄까지 출력한다.
sed -n -e '1,$p' geekfile.txt

추가

# unix 뒤에 best를 추가하고 전체 줄을 출력한다.
sed -n -e '/unix/a\best' -e '1,$p' geekfile.txt
# unix 위에 best를 추가하고 두 번째 줄까지 출력한다.
sed -n -e '/unix/i\best' -e '1,2' geekfile.txt

명령어

sed -n [OPTIONS...] [-e Script] [INPUTFILE...]

Options

optiondescription
i원본 파일을 변경한다
n패턴 버퍼를 출력하지 않는다
e여러 개의 스크립트를 사용한다.

다양한 예제

# geekfile.txt
unix is great os.
learn unix system.
easy linux easy learn

각 단어의 첫 글자에 소괄호를 씌운다.

echo "Welcome To The Geek Stuff" | sed -n -e 's/\(\b[A-Z]\)/\(\1\)/g'
# OUTPUT
#	(W)elcome (T)o (T)he (G)eek (S)tuff

문자열을 치환하면서 동시에 복제한다.

sed -n -e 's/unix/linux/p' geekfile.txt
# OUTPUT
#	linux is great os.
#	linux is great os.
#	learn linux system.
#	learn linux system.
#	easy linux easy learn
#	easy linux easy learn

첫째 줄부터 둘째 줄까지만 치환한다.

sed -n -e '1,2 s/unix/linux/' geekfile.txt
# OUTPUT
#	linux is great os.
#	learn linux system.
#	easy unix easy learn

셋째 줄만 치환한다.

sed -n -e '3 s/unix/linux/' geekfile.txt
#	unix is great os.
#	learn unix system.
#	easy linux easy learn

출처

https://www.geeksforgeeks.org/sed-command-in-linux-unix-with-examples/
https://reakwon.tistory.com/164

profile
Living loving and learning

0개의 댓글