나무모에 미러 (일반/어두운 화면)
최근 수정 시각 : 2025-04-16 17:52:48

sed(UNIX)


[[프로그래밍 언어|'''프로그래밍 언어
{{{#!wiki style="font-family: Times New Roman, serif; display: inline;"
]]
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)"
{{{#!folding [ 목록 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=royalblue><colcolor=#fff> ※ 나무위키에 등재된 프로그래밍 언어 목록
AActionScript · Ada · Agda · ALGOL · APL · awk
BBASIC · Befunge · Brainfuck
CC · C# · C++ · Carbon · Chef · Clojure · COBOL · CoffeeScript · Coq · Crystal
DD · Dart
EElixir · Elm · emojicode · Erlang · ETA
FF# · Forth · Fortran
GGNU Octave · Go · Groovy
HHaskell · HolyC · HQ9+ · HRON
I
JJava · JavaScript · Julia
KKotlin · Krait
LLean · LISP · Lua
MMalbolge · MATLAB · Max · Mojo · Moonlight
NNim · Nix
OOberon · Objective-C · OCaml · Ook!
PPascal · Perl · PHP · Processing · Prolog · Python
QQ#
RR · Racket · Raku · ReasonML · Ruby · Rust
SScala · Scheme · Scratch · sed · Shakespeare · Shell Script · Smalltalk · Swift
TTypeScript
UUdon
VVisual Basic · Visual Basic .NET · Visual Basic for Applications · vvvv
WWave · Whitespace
X
Y
ZZenScript · Zig
한글누리 · 씨앗 · 아희 · 약속 · 엄랭 · 엔트리 · 창조}}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 40%; min-height: calc(1.5em + 5px)"
{{{#!folding [ 순위 ]
{{{#!wiki style="margin: -5px -1px -10px"
{{{#!wiki style="min-height: calc(1.5em + 5px); margin: 0 -10px -5px"
{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ IEEE Spectrum 2024 ]
{{{#!wiki style="margin: -5px -1px"
<tablewidth=100%><tablebgcolor=transparent><colbgcolor=#11a500><colcolor=#fff> 스펙트럼 부문 상위 10개 프로그래밍 언어 <colbgcolor=#ff1100><colcolor=#fff> 직업 부문 상위 10개 프로그래밍 언어
1 Python 1 SQL
2 Java 2 Python
3 JavaScript 3 Java
4 C++ 4 TypeScript
5 TypeScript 5 SAS
6 SQL 6 JavaScript
7 C# 7 C#
8 Go 8 HTML
9 C 9 Shell
10 HTML 10 C++ }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ Stack Overflow 2024 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=#ffa500><colcolor=#fff> 2024년 Stackoverflow 설문조사 상위 25개 프로그래밍 언어
1 JavaScript <colbgcolor=#ffa500><colcolor=#fff> 14 Rust
2 HTML & CSS 15 Kotlin
3 Python 16 Lua
4 SQL 17 Dart
5 TypeScript 18 어셈블리어
6 Bash 19 Ruby
7 Java 20 Swift
8 C# 21 R
9 C++ 22 Visual Basic
10 C 23 MATLAB
11 PHP 24 VBA
12 PowerShell 25 Groovy
13 Go }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ TIOBE 2025 ]
{{{#!wiki style="margin: -5px -1px"
<colbgcolor=#2777c2><colcolor=#fff> 2025년 2월 TIOBE 검색어 점유율 상위 20개 프로그래밍 언어
1 Python <colbgcolor=#2777c2><colcolor=#fff> 11 Fortran
2 C++ 12 Scratch
3 Java 13 Rust
4 C 14 PHP
5 C# 15 R
6 JavaScript 16 MATLAB
7 SQL 17 Assembly language
8 Go 18 COBOL
9 Delphi / Object Pascal 19 Ruby
10 Visual Basic 20 Prolog }}}}}}}}}{{{#!wiki style="display: inline-table; min-width: 25%; min-height: calc(1.5em + 5px)"
{{{#!folding [ PYPL 2025 ]
{{{#!wiki style="margin: -5px -1px -10px"
<colbgcolor=green><colcolor=#fff> 2025년 3월 PYPL 검색어 점유율 상위 20개 프로그래밍 언어
1 Python <colbgcolor=green><colcolor=#fff> 11 Swift
2 Java 12 Go
3 JavaScript 13 Kotlin
4 C/C++ 14 MATLAB
5 C# 15 Ada
6 R 16 Dart
7 PHP 17 Ruby
8 Rust 18 Lua
9 TypeScript 19 PowerShell
10 Objective-C 20 VBA }}}}}}}}}}}} }}}}}}}}}}}}
분류:프로그래밍 언어 · 프로그래밍 언어 목록 · 언어별 예제 · 틀:프로그래밍 언어 문법

1. 개요2. 설명3. 옵션4. 스크립트
4.1. 주소 지정4.2. 명령어
5. 사이클
5.1. 패턴 공간(pattern space)5.2. 홀드 공간(hold space)
6. 관련 문서

1. 개요

stream editor, sed

UNIX의 스트림 기반 문서 편집용 스크립트 언어.

2. 설명

sed는 단독으로도 사용되고 실제로 어느 정도 편집기의 역할을 할 수 있지만 주로 명령어 파이프 사이에서 사용되는데, 어떤 명령어의 출력을 가공하여 다른 명령어의 입력으로 넣는 것이다. 명령어 출력의 특정 부분만을 필요로 하거나, 쓸데없는 부분이 많다면 규칙에 따라 유용한 문자열만 추출하도록 하는 필터의 역할을 한다.

VLC를 root 계정으로 실행할 때도 이 명령어를 사용한다.
sudo sed -i 's/geteuid/getppid/' /usr/bin/vlc

3. 옵션

기본 형식 : sed [efn] script file, script는 sed에서 사용하는 스크립트를 지정한다. 처리할 문자 스트림이 표준 입력으로 들어오지 않는 경우, file에 해당하는 파일을 대신 사용한다.

4. 스크립트

4.1. 주소 지정

주소 지정은 입력의 몇번째 줄을 대상으로 처리할지를 나타낸다. 명령어 별로 사용하는 범위가 다르기 때문에 보통 3가지의 주소 지정 모드를 가진다. ed에서 쓰이는 것과 비슷하고 실제로 일부는 호환이 가능하지만 확장 기능에서 몇가지 차이가 있어 완벽하게 호환되지 않는다.
$는 마지막 줄을 나타내는 특수 기호이다. !는 패턴 공간에 대한 주소가 아닌 경우, 그대로 실행한다.

4.2. 명령어

대부분의 명령어는 ed 유틸리티와 호환성이 있지만 흔적만 남고 줄 단위 편집기와 관련 없거나 sed 동작에 맞지 않는 명령어는 없어졌다.
아래의 두 명령어 모두 공통 동작으로 더이상 읽어올 줄이 없는 경우, 스크립트의 끝으로 이동한다는 특징이 있다.

5. 사이클

sed는 사이클이라는 단계로 동작을 구분한다. 매번 하나의 단계마다 입력으로부터 한 줄을 읽어 패턴 공간에 저장한다. 이 문자열은 줄 끝에 개행 문자가 포함되어있지 않다.

5.1. 패턴 공간(pattern space)

명령어의 실행 대상이 되는 공간이다. 즉, sed는 실제 파일을 편집하지 않는다. 패턴 공간은 사이클마다 초기화되는데 그 이유는 사이클의 시작 조건부터가 한 줄을 입력받는 공통 동작이 있기 때문이다.

5.2. 홀드 공간(hold space)

비휘발성 저장소와 비슷한 역할을 한다. 새로운 사이클이 시작되어도 초기화되지 않고 이전 데이터를 유지한다.

6. 관련 문서