텍스트 검색, 치환, 추가, 제거 등 다양한 기능을 지원하는 편집기이다.
# 각 줄에서 첫 번째로 나타난 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...]
option | description |
---|---|
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