sed
텍스트 처리
쓰는 꼴
sed -i 's/[old]/[new]/g' [file]줄 단위로 글을 고칩니다. 자리에서 고치는 -i가 GNU와 BSD에서 다르고, 끝에 g가 없으면 줄마다 첫 번째만 바뀝니다.
자주 쓰는 옵션
| 옵션 | 뜻 |
|---|---|
| s/a/b/g | Replace a with b; without the trailing g only the first per line |
| -i | Edit in place. GNU takes -i alone, BSD and macOS need -i "" |
| -E | Extended regex; BSD also accepts -r for GNU compatibility |
| -n | Print nothing unless a command says to, usually with p |
| -e | Add another expression to the script |
| -f | Read the script from a file |
예시
sed -i 's/foo/bar/g' file.txtReplaces every foo in place (GNU).
sed -i '' 's/foo/bar/g' file.txtThe same on macOS, with the empty argument.
sed -n '10,20p' file.txtPrints only lines 10 to 20.
파이프로 이어 쓰는 것이 본래 용도입니다. 한 명령이 다 하는 것보다 셋을 잇는 편이 짧습니다.
읽는 방법
- 대괄호 [ ]는 넣어도 되고 안 넣어도 되는 자리입니다.
- 점 셋 …은 여러 개를 이어 쓸 수 있다는 뜻입니다.
- 옵션은 대소문자를 가립니다 — -r과 -R이 다른 명령도 있습니다.
자주 묻는 것
Q. sed은 무엇을 하나요?
줄 단위로 글을 고칩니다. 자리에서 고치는 -i가 GNU와 BSD에서 다르고, 끝에 g가 없으면 줄마다 첫 번째만 바뀝니다.
Q. 어떻게 치나요?
sed -i 's/[old]/[new]/g' [file] — 대괄호는 생략할 수 있는 자리입니다.
Q. 옵션은 몇 개나 자주 쓰나요?
여기 정리한 것은 6개입니다. 전체 목록은 man sed에 있습니다. 이 명령은 텍스트 처리 갈래입니다.
같이 보는 명령
man 페이지: man sed