<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ko">
	<id>https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=Sed</id>
	<title>Sed - 편집 역사</title>
	<link rel="self" type="application/atom+xml" href="https://devcafe.co.kr/w/index.php?action=history&amp;feed=atom&amp;title=Sed"/>
	<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=Sed&amp;action=history"/>
	<updated>2026-05-19T15:24:24Z</updated>
	<subtitle>이 문서의 편집 역사</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://devcafe.co.kr/w/index.php?title=Sed&amp;diff=1498&amp;oldid=prev</id>
		<title>Devcafe: 새 문서: == sed 명령어 == * Streamlined EDitor * 파일에서 sed 명령으로 특정 패턴 추출 * cat 명령으로 파일을 확인한 뒤 파이프라인 ( | )을 이용해 패턴 적용   === sed 옵션 명령어 === &lt;source lang=bash&gt; a\	현재 행에 하나 이상의 새로운 행을 추가한다. c\ 	현재 행의 내용을 새로운 내용으로 교체한다. d	행을 삭제한다.  i\	현재 행의 위에 텍스트를 삽입한다.  h	패턴 스페이스의 내용을 홀드...</title>
		<link rel="alternate" type="text/html" href="https://devcafe.co.kr/w/index.php?title=Sed&amp;diff=1498&amp;oldid=prev"/>
		<updated>2025-05-27T23:41:00Z</updated>

		<summary type="html">&lt;p&gt;새 문서: == sed 명령어 == * Streamlined EDitor * 파일에서 sed 명령으로 특정 패턴 추출 * cat 명령으로 파일을 확인한 뒤 파이프라인 ( | )을 이용해 패턴 적용   === sed 옵션 명령어 === &amp;lt;source lang=bash&amp;gt; a\	현재 행에 하나 이상의 새로운 행을 추가한다. c\ 	현재 행의 내용을 새로운 내용으로 교체한다. d	행을 삭제한다.  i\	현재 행의 위에 텍스트를 삽입한다.  h	패턴 스페이스의 내용을 홀드...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;새 문서&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== sed 명령어 ==&lt;br /&gt;
* Streamlined EDitor&lt;br /&gt;
* 파일에서 sed 명령으로 특정 패턴 추출&lt;br /&gt;
* cat 명령으로 파일을 확인한 뒤 파이프라인 ( | )을 이용해 패턴 적용 &lt;br /&gt;
&lt;br /&gt;
=== sed 옵션 명령어 ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
a\	현재 행에 하나 이상의 새로운 행을 추가한다.&lt;br /&gt;
c\ 	현재 행의 내용을 새로운 내용으로 교체한다.&lt;br /&gt;
d	행을 삭제한다. &lt;br /&gt;
i\	현재 행의 위에 텍스트를 삽입한다. &lt;br /&gt;
h	패턴 스페이스의 내용을 홀드 스페이스에 복사한다. &lt;br /&gt;
H	패턴 스페이스의 내용을 홀드 스페이스에 추가한다.&lt;br /&gt;
g	홀드 스페이스의 내용을 패턴 스페이스에 복사한다. (패턴 스페이스가 비어있지 않은 경우에는 덮어쓰기~)&lt;br /&gt;
G	홀드 스페이스의 내용을 패턴 스페이스에 복사한다. (패턴 스페이스가 비어있지 않은 경우에는 그 뒤에 추가) &lt;br /&gt;
l	출력되지 않는 특수문자를 명확하게 출력한다. &lt;br /&gt;
p	행을 출력한다. &lt;br /&gt;
n	다음 입력 행을 첫 번째 명령어가 아닌 다음 명령어에서 처리하게 한다. &lt;br /&gt;
q	sed를 종료한다.&lt;br /&gt;
r	파일로부터 행을 읽어온다.&lt;br /&gt;
!	선택된 행을 제외한 나머지 전체 행에 명령어를 적용한다.&lt;br /&gt;
s	문자열을 치환한다.&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
=== sed s와 같이 쓰는 치환플래그 === &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
g	치환이 행 전체에 대해 이뤄진다.&lt;br /&gt;
p	행을 출력한다.&lt;br /&gt;
w	파일에 쓴다. &lt;br /&gt;
x	홀드 버퍼와 패턴 스페이스의 내용을 서로 맞바꾼다. &lt;br /&gt;
y	한 문자를 다른 문자로 변환한다. (y에 정규표현식 메타문자를 사용할 수 없다)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 출력 p 명령어 ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed -n &amp;#039;/love/p&amp;#039; file&lt;br /&gt;
&lt;br /&gt;
# file파일에서 love가 포함된 행 출력&lt;br /&gt;
# -n 옵션이 있어야 love 패턴을 포함하는 줄들만 출력 &lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed -n &amp;#039;/west/,/east/p&amp;#039; file&lt;br /&gt;
&lt;br /&gt;
# file파일에서 west 와 east가 나오는 행 사이의 모든 행 출력&lt;br /&gt;
# west가 east 다음에 나오면 west가 나오는 행부터 파일의 마지막까지 출력&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed -n &amp;#039;3,/^employee/p&amp;#039; file&lt;br /&gt;
# 3번째 행부터 employee로 시작되는 행까지 출력&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
=== 삭제 d 명령어 === &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;3d&amp;#039; file&lt;br /&gt;
# file파일에서 3번째 행 삭제. 나머지 행들이 출력.&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;5,$d&amp;#039; file&lt;br /&gt;
# 5번째 행부터 마지막 행까지 삭제, 그리고 나머지 행들이 출력&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;$d&amp;#039; file&lt;br /&gt;
# 마지막 행을 삭제. d명령어로 삭제된 행 이외의 모든 행들이 출력 &lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;/apple/d&amp;#039; file&lt;br /&gt;
# 파일에서 apple 포함하는 모든 행을 삭제 나머지 행을 출력&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
=== 치환 s 명령어 ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;s/clere/clear/g&amp;#039; file&lt;br /&gt;
sed -n &amp;#039;s/clere/clear/gp&amp;#039; file&lt;br /&gt;
# g플래그는 행 전체 치환 , clere라는 단어가 보이면 clear로 전체행을 치환&lt;br /&gt;
# 치환 s 와 -n,p조합 하여 변경이 일어난 행들만 출력&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== 파일 읽는(read) r 명령어 ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;/ref/r addfile&amp;#039; file&lt;br /&gt;
# file파일로부터 ref라는 단어를 찾으면 그 패턴찾은 행 뒤에 addfile의 내용을 붙여 출력 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 파일에 쓰는(write) w명령어 ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed -n &amp;#039;/north/w outputfile&amp;#039; file&lt;br /&gt;
# file파일로부터 north라는 패턴이 포함된 행을 찾아 결과를 outputfile에 저장 &lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
=== 문자열 추가(append)하기 a 명령어 ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;/END$/a\THANK YOU FOR READING&amp;#039; file&lt;br /&gt;
# file파일에서 END로 끝나는 행을 찾아, 그 다음에 &amp;#039;THANK YOU FOR READING&amp;#039;을 추가&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 패턴스페이스와 홀드스페이스 ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed -e &amp;#039;/northeast/h&amp;#039; -e &amp;#039;$G&amp;#039; file&lt;br /&gt;
# file파일에서 northeast라는 단어를 찾은 후 그 행들을 홀드스페이스에 저장 (h명령어)&lt;br /&gt;
# 그리고 마지막 행($)에 홀드스페이스 내용을 패턴스페이스에 복사, 대문자G의 경우 패턴스페이스에 내용이 있을 경우 뒤에 추가하는 명령어로, 텍스트 맨 뒤에 복사 됨.&lt;br /&gt;
# 즉, 패턴 northeast를 포함하는 행들은 모두 홀드 스페이스로 복사 후 파일의 마지막에 추가&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
==== 패턴 스페이스 와 홀드 스페이스 ====&lt;br /&gt;
https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbnZHd6%2FbtqEsDE9VUa%2FpmR81oKgh75TFjJuMNsGQ1%2Fimg.png&lt;br /&gt;
&lt;br /&gt;
* 패턴 스페이스(Pattern space)&lt;br /&gt;
# 패턴 버퍼 임시 저장 공간 &lt;br /&gt;
# 파일을 라인단위로 읽을 때 그 읽힌 라인이 저장되는 임시 공간&lt;br /&gt;
&lt;br /&gt;
* 홀드 스페이스(hold space)&lt;br /&gt;
# 홀드 버퍼 임시 저장 공간 &lt;br /&gt;
# 패턴 버퍼처럼 짧은 순간 임시 버퍼가 아닌 더 길게 저장되는 저장 공간&lt;br /&gt;
# 예로 2라인을 작업중이더라도 1라인을 기억할수 있음.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 자주 사용하는 sed 명령어 예시 ===&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;/a/d&amp;#039; test.txt		a가 포함된 행 삭제&lt;br /&gt;
sed &amp;#039;s/a//g&amp;#039; test.txt	a가 포함된 행에서 a만 지우고 출력&lt;br /&gt;
sed &amp;#039;s/ //g&amp;#039; test.txt	행에서 공백(space) 제거&lt;br /&gt;
sed &amp;#039;/^$/d&amp;#039; test.txt	space 조차 없는 빈 행 삭제&lt;br /&gt;
sed &amp;#039;/^\s*$/d&amp;#039; test.txt	space만 있는 빈 행이라면 해당 행 삭제&lt;br /&gt;
sed &amp;#039;a\\&amp;#039; test.txt		행마다 위,아래 공백인 행 추가&lt;br /&gt;
sed &amp;#039;s/a.*b//&amp;#039;			각 행에서 a ~ b 까지 전체 내용 삭제 후 출력&lt;br /&gt;
sed &amp;#039;s/\[//g&amp;#039;			특수문자인 대괄호 &amp;#039;[&amp;#039; 삭제 (역슬러시 or 달러표시 사용)&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== 문자열이 들어간 행 삭제 후 출력 ==== &lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;/--norc/d&amp;#039; &lt;br /&gt;
&lt;br /&gt;
# 문자열이 들어간 행 삭제&lt;br /&gt;
# 특정 문자열이 들어간 행 삭제&lt;br /&gt;
# &amp;#039;--norc&amp;#039; 문자열이 들어간 행을 삭제함 &lt;br /&gt;
&amp;lt;/source&amp;gt;   &lt;br /&gt;
&lt;br /&gt;
==== 특정 행 삭제 후 다른 파일로 저장하기 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
grep -v &amp;quot;--norc&amp;quot; &amp;gt;&amp;gt; test.txt&lt;br /&gt;
&lt;br /&gt;
sed &amp;#039;/--norc/d&amp;#039; &amp;gt;&amp;gt; test.txt &lt;br /&gt;
&lt;br /&gt;
# --norc가 들어간 행 전체 삭제 후 test.txt 파일로 저장&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
==== 행에서 특정 문자열만 삭제 후 출력 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;s/값 1/값 2/g&amp;#039; # 값 1을 값2로 치환&lt;br /&gt;
sed &amp;#039;s/--norc//g&amp;#039;&lt;br /&gt;
&lt;br /&gt;
 --norc가 들어간 행에서 일부 문자열만 삭제 후 출력&lt;br /&gt;
# 행 전체를 삭제하는 것이 아닌, 특정 문자만 제거한 뒤 출력 &lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== 행에서 치환 / 공백 제거 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;s/--norc/--test/g&amp;#039; # --norc를 --test로 치환하기&lt;br /&gt;
# 문자열을 다른 문자열로 치환&lt;br /&gt;
&lt;br /&gt;
sed &amp;#039;s/ //g&amp;#039; 			# space를 삭제한 뒤 출력&lt;br /&gt;
# 문자사이_공백제거&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
==== 문자열 치환후 결과를 파일로 저장 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;s/--norc/--test/g&amp;#039; &amp;gt;&amp;gt; test.txt # --norc를 --test로 바꾼 뒤 결과를 test.txt로 저장&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
==== 문자열 구간의 내용을 삭제 or 치환 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt; &lt;br /&gt;
sed &amp;#039;s/running.*--norc//g&amp;#039;			# running부터 --norc까지의 모두 삭제&lt;br /&gt;
 &lt;br /&gt;
sed &amp;#039;s/running.*--norc//g&amp;#039; 		# sed &amp;#039;s/값 1.*값 2//g&amp;#039;&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==== 따옴표 사이의 모든 내용 삭제 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt; &lt;br /&gt;
sed &amp;#039;s/&amp;quot;.*&amp;quot;//&amp;#039;			# 따옴표 &amp;quot; &amp;quot; 사이의 내용 모두 삭제&lt;br /&gt;
&lt;br /&gt;
# 뒷부분의 g를 붙이지 않았는데도 따옴표 사이의 내용이 모두 삭제&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
==== 두 개의 문자열을 한 번에 삭제 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed&amp;#039; s/값 1\|값 2/ /g&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
sed &amp;#039;s/running:\|--norc//g&amp;#039; 	# running: 와 --norc 두 개의 문자열 삭제 후 출력&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
# 역 슬러시 (\)와 파이프라인 (|)을 이용하면 두 개의 문자열을 한 번에 패턴에 적용명령어를 적용 &lt;br /&gt;
# 문자열 구간에 여러 개의 문자열을 지정 가능.&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
==== 행에 특수기호가 있는 경우, 역 슬러시(\)를 이용해 삭제 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt; &lt;br /&gt;
sed &amp;#039;s/\[\|\]/ /g&amp;#039;	# 특수기호인 대괄호 &amp;#039;[, ]&amp;#039;만 제거 후 출력&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
==== 특수문자 사이에 있는 내용 모두 삭제 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt; &lt;br /&gt;
sed &amp;#039;s/\[.*\]//g&amp;#039; 	# 대괄호 &amp;#039;[, ]&amp;#039; 사이 내용 모두 삭제&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
==== 빈행과 space가 있는 행의 차이 구분 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt;&lt;br /&gt;
sed &amp;#039;a\\&amp;#039; &amp;gt;&amp;gt; test2	# 행별로 그 사이 빈행을 하나씩 추가하여 test2 파일로 저장하기&lt;br /&gt;
# 행별로 빈 행이 하나씩 추가(a 옵션)&lt;br /&gt;
# 빈 행에는 실제로 아무런 값이 없는 행과 빈공간(space)로 존재하는 행이 있음.&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== 빈행제거 ====&lt;br /&gt;
&amp;lt;source lang=bash&amp;gt; &lt;br /&gt;
sed &amp;#039;/^$/d&amp;#039;				# 아무런 값이 없는 빈 행 제거&lt;br /&gt;
&lt;br /&gt;
sed &amp;#039;/^\s*$/d&amp;#039;			# 공백 (space)으로 이루어진 빈 행 제거&lt;br /&gt;
 &lt;br /&gt;
sed &amp;#039;/^[[:space:]]*$/d&amp;#039;	# 상동 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[category:unix]]&lt;br /&gt;
[[category:sed]]&lt;/div&gt;</summary>
		<author><name>Devcafe</name></author>
	</entry>
</feed>