[Linux] ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด - sed

2025. 6. 6. 23:04ยทLinux

์ฐพ์€ ๋ฌธ์ž์—ด์„ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ๋Š” sed

sed๋Š” ์ŠคํŠธ๋ฆผ ํŽธ์ง‘๊ธฐ.
์ŠคํŠธ๋ฆผ ํŽธ์ง‘๊ธฐ๋Š” ์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์—์„œ ํ…์ŠคํŠธ ๋ณ€ํ™˜์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ.
์ž…๋ ฅ ์ŠคํŠธ๋ฆผ์€ ํ…์ŠคํŠธ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ณ ์ž ํ•˜๋Š” ๋Œ€์ƒ ํŒŒ์ผ.
์Šคํฌ๋ฆฝํŠธ๋Š” ์–ด๋–ป๊ฒŒ ๋ณ€ํ™˜ํ• ์ง€ ์ •์˜ํ•˜๋Š” ์ผ.

sed ์‚ฌ์šฉ๋ฒ•

# ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•1
sed [์˜ต์…˜] ‘์–ด๋“œ๋ ˆ์Šค {๋ช…๋ น์–ด}’ ๋Œ€์ƒ ํŒŒ์ผ

# ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•2
sed [์˜ต์…˜] -f ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ๋Œ€์ƒ ํŒŒ์ผ

# ๊ธฐ๋ณธ ์‚ฌ์šฉ๋ฒ•3
๋ช…๋ น์–ด | sed [์˜ต์…˜] ‘{์Šคํฌ๋ฆฝํŠธ}’

sed ์Šคํฌ๋ฆฝํŠธ

sed ์Šคํฌ๋ฆฝํŠธ๋Š” ์–ด๋–ค ๋ฒ”์œ„์˜ ์–ด๋–ค ๋ฌธ์ž์—ด์ด ํฌํ•จ๋œ ๋ผ์ธ์„ ์ถ”์ถœํ•˜๋˜์ง€ ํŠน์ • ๋ฌธ์ž์—ด์„ ์›ํ•˜๋Š” ๋‹ค๋ฅธ ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝํ•  ๊ฒƒ์ธ์ง€๋ฅผ ๋ช…์‹œํ•˜๋Š” ์ผ.

์–ด๋“œ๋ ˆ์Šค

๋Œ€์ƒ ํŒŒ์ผ์—์„œ ์–ด๋–ค ๋ฒ”์œ„์— ํ•ด๋‹น.
์–ด๋“œ๋ ˆ์Šค๊ฐ€ ์ •์˜๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์—๋Š” ๋Œ€์ƒ ํŒŒ์ผ ์ „์ฒด์—์„œ ํŠน์ • ๋ฌธ์ž์—ด์„ ์ฐพ๊ฑฐ๋‚˜ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰.

์˜ต์…˜ ์„ค๋ช…
number ๋ช…์‹œ๋œ ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ผ์ธ ๋ฒˆํ˜ธ์ผ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰.
number~step ๋ช…์‹œ๋œ ์ˆซ์ž์— ํ•ด๋‹นํ•˜๋Š” ๋ผ์ธ๋ถ€ํ„ฐ ๋ช…์‹œํ•œ ๋‹จ๊ณ„๋งŒํผ ํ•ด๋‹น ๋ผ์ธ์„ ์Šคํ‚ตํ•œ ๋‹ค์Œ ๋ผ์ธ์ผ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰.
$ ํŒŒ์ผ์˜ ๋งˆ์ง€๋ง‰ ๋ผ์ธ์ผ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰.
/regexp/ ๋ช…์‹œํ•œ ์ •๊ทœ ํ‘œํ˜„์‹๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ผ์ธ์ผ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰.
\cregexpc ๋ช…์‹œํ•œ ์ •๊ทœ ํ‘œํ˜„์‹๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ผ์ธ์ผ ๊ฒฝ์šฐ ๋‹ค์Œ ๋ช…๋ น์–ด๋ฅผ ์ˆ˜ํ–‰.
0.addr2 1๋ฒˆ์งธ ๋ผ์ธ๋ถ€ํ„ฐ addr2๊ฐ€ ํฌํ•จ๋œ ๋ผ์ธ๊นŒ์ง€๊ฐ€ ๋ฒ”์œ„์ด๋ฉฐ, addr2๋Š” ์ •๊ทœ ํ‘œํ˜„์‹์ด์—ฌ์•ผ ํ•จ.
addr1.+N addr1์ด ํฌํ•จ๋œ ๋ผ์ธ๋ถ€ํ„ฐ +N๋ผ์ธ๊นŒ์ง€๊ฐ€ ๋ฒ”์œ„์ด๋ฉฐ, addr1์€ ์ •๊ทœ ํ‘œํ˜„์‹์ด์—ฌ์•ผ ํ•˜๋ฉฐ, N์€ ์ˆซ์ž์—ฌ์•ผ ํ•จ.
addr1.~N addr1์ด ํฌํ•จ๋œ ๋ผ์ธ์„ ๊ธฐ์ค€์œผ๋กœ N๋ผ์ธ๊นŒ์ง€๊ฐ€ ๋ฒ”์œ„์ด๋ฉฐ, addr1์€ ์ •๊ทœ ํ‘œํ˜„์‹์ด์—ฌ์•ผ ํ•˜๋ฉฐ, N์€ ์ˆซ์ž์—ฌ์•ผ ํ•จ.

๋ช…๋ น์–ด

sed ๋ช…๋ น์–ด์—๋Š” ์–ด๋“œ๋ ˆ์Šค๋ฅผ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๊ฑฐ๋‚˜, ์ˆซ์ž๋‚˜ ์ •๊ทœ ํ‘œํ˜„์‹๊ณผ ๊ฐ™์€ ๋‹จ์ผ ์–ด๋“œ๋ ˆ์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ช…๋ น์–ด์™€ ์–ด๋“œ๋ ˆ์Šค ๋ฒ”์œ„๋ฅผ ํ—ˆ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋“ค์ด ์žˆ์Œ.
sed์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ช…๋ น์–ด

  • 0 or 1 ์–ด๋“œ๋ ˆ์Šค ๋ช…๋ น์–ด
์˜ต์…˜ ์„ค๋ช… ์˜ต์…˜ ์„ค๋ช…
:label ๋ผ๋ฒจ i\text ๋ฌธ์ž์—ด ์‚ฝ์ž…
#comment ์ฃผ์„ q sed ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ข…๋ฃŒ
{ ... } ๋ธ”๋ก Q sed ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ์ข…๋ฃŒ
= ํ˜„์žฌ ๋ผ์ธ ๋ฒˆํ˜ธ ์ถœ๋ ฅ r ํŒŒ์ผ๋ช… ํŒŒ์ผ ๋‚ด์šฉ ์ถ”๊ฐ€
a \ text ๋ฌธ์ž์—ด ์ถ”๊ฐ€ R ํŒŒ์ผ๋ช… ํŒŒ์ผ์˜ ์ฒซ ๋ผ์ธ ์ถ”๊ฐ€
  • ์–ด๋“œ๋ ˆ์Šค ๋ฒ”์œ„ ๋ช…๋ น์–ด
์˜ต์…˜ ์„ค๋ช…
b label ๋ผ๋ฒจ์„ ํ˜ธ์ถœ
c \ text ์•ž์—์„œ ๋ช…์‹œ๋œ ํŒจํ„ด์ด ํฌํ•จ๋œ ๋ผ์ธ์„ text ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝ
d D ์•ž์—์„œ ๋ช…์‹œ๋œ ํŒจํ„ด ์‚ญ์ œ
h H ํŒจํ„ด ๊ณต๊ฐ„์„ ํ™€๋“œ ๊ณต๊ฐ„์— ๋ณต์‚ฌ/์ถ”๊ฐ€
g G ํ™€๋“œ ๊ณต๊ฐ„์„ ํŒจํ„ด ๊ณต๊ฐ„์— ๋ณต์‚ฌ/์ถ”๊ฐ€
l ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ์˜ ํ˜„์žฌ ๋ผ์ธ ์ถœ๋ ฅ
l width ๋ช…์‹œํ•œ ๋„ˆ๋น„์— ๋งž๊ฒŒ ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ์˜ ํ˜„์žฌ ๋ผ์ธ ์ถœ๋ ฅ
n N ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ์˜ ๋‹ค์Œ ๋ผ์ธ์„ ๋ณต์‚ฌ/์ถ”๊ฐ€
p P ํ˜„์žฌ ํŒจํ„ด ๊ณต๊ฐ„ ์ถœ๋ ฅ
s/regexp/replacement/ ์ •๊ทœ ํ‘œํ˜„์‹(regexp)์— ํ•ด๋‹นํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ ๋‹ค์Œ ์˜ค๋Š” ๋ฐ์ดํ„ฐ(replacement)๋กœ ๋ณ€๊ฒฝ
t label / T label ์•ž์—์„œ ์„ ์–ธ๋œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ ํ›„ ๋ผ๋ฒจ๋กœ ๋ถ„๊ธฐ
w ํŒŒ์ผ๋ช… / W ํŒŒ์ผ๋ช… ๋ช…์‹œํ•œ ํŒŒ์ผ์— ํ˜„์žฌ ํŒจํ„ด ๊ณต๊ฐ„์„ ์ €์žฅ
x ํ™€๋“œ์™€ ํŒจํ„ด ๊ณต๊ฐ„์˜ ์ฝ˜ํ…์ธ ๋ฅผ ๊ตํ™˜
y/source/dest/ ํŒจํ„ด์ด ํฌํ•จ๋œ ๋ผ์ธ์˜ ๋ฌธ์ž์—ด(source)์„ dest ๋ฌธ์ž์—ด๋กœ ๋ณ€๊ฒฝ

sed ์˜ต์…˜

์˜ต์…˜ ์„ค๋ช…
-n, --quiet, --silent ํ˜„์žฌ ํŒจํ„ด ๊ณต๊ฐ„์„ ์ถœ๋ ฅํ•˜์ง€ ์•Š์Œ
-e ์Šคํฌ๋ฆฝํŠธ, --expression=์Šคํฌ๋ฆฝํŠธ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•จ
-f ์Šคํฌ๋ฆฝํŠธํŒŒ์ผ, --file=์Šคํฌ๋ฆฝํŠธํŒŒ์ผ ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ์„ ํ†ตํ•ด sed๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•จ
--follow-symlinks -i ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ ์ž์ฒด๊ฐ€ ์•„๋‹Œ ์‹ฌ๋ณผ๋ฆญ ๋งํฌ์™€ ์—ฐ๊ฒฐ๋œ ์›๋ณธ ํŒŒ์ผ์— ์ ์šฉํ•จ
-i ํŒŒ์ผ ํ™•์žฅ์ž, --in-place=ํŒŒ์ผ ํ™•์žฅ์ž ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํŒŒ์ผ์— ๋ฐ”๋กœ ์ ์šฉํ•จ. ์ด๋•Œ, ํŒŒ์ผ ํ™•์žฅ์ž๋ฅผ ๋ช…์‹œํ•˜๋ฉด, ๋ณ€๊ฒฝ ์ „ ๋ช…์‹œํ•œ ํ™•์žฅ์ž๋ฅผ ๊ฐ€์ง„ ๋ฐฑ์—… ํŒŒ์ผ์„ ์ƒ์„ฑํ•จ
-c, --copy -i ์˜ต์…˜๊ณผ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํŒŒ์ผ๋ช… ๋’ค์— c๊ฐ€ ๋ถ™์€ ๋ฐฑ์—… ํŒŒ์ผ์„ ์ƒ์„ฑํ•จ
-l N, --line-length=N l ๋ช…๋ น์–ด์™€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ธด ๋ฌธ์ž์—ด์„ ํฌํ•จํ•˜๋Š” ํŒŒ์ผ์˜ ๋‚ด์šฉ์„ ํ™•์ธํ•  ๊ฒฝ์šฐ ๋ช…์‹œํ•œ N๋งŒํผ ๋ผ์ธ ๋„“์ด๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Œ
--posix POSIX ํ™•์žฅ ๊ธฐ๋Šฅ์„ ๋”. POSIX ํ™•์žฅ์„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์‹œ์Šคํ…œ์—์„œ sed๋ฅผ ์‹คํ–‰ํ•ด์•ผ ํ•  ๊ฒฝ์šฐ POSIX ํ™•์žฅ ๊ธฐ๋Šฅ์„ ๋„๊ณ , ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์Œ
-r, --regexp-extended ์Šคํฌ๋ฆฝํŠธ์—์„œ POSIX ํ™•์žฅ ์ •๊ทœ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Œ. sed๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ํ™•์žฅ ์ •๊ทœ์‹์„ ์ธ์‹ํ•˜์ง€ ์•Š์Œ
-s, --seperate sed๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๊ฐ„์ฃผํ•˜์ง€๋งŒ, -s ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํŒŒ์ผ์„ ๊ฐ๊ฐ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Œ
-u, --unbuffered ๋Œ€์šฉ๋Ÿ‰์˜ ํŒŒ์ผ์—์„œ ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ๊ฒฐ๊ณผ๋ฅผ ํ„ฐ๋ฏธ๋„๋กœ ์ถœ๋ ฅํ•  ๊ฒฝ์šฐ, -u ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฒ„ํผ๋ฅผ ์ž์ฃผ ๋น„์›Œ ์„ฑ๋Šฅ์ด ํ–ฅ์ƒ๋จ
-z, --null-data ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๊ฐ€ null์ธ ๋ฐ์ดํ„ฐ์˜ ๋ฌธ์ž์—ด์„ ๋ณ€๊ฒฝํ•  ๋•Œ ์‚ฌ์šฉ
--help sed ์‚ฌ์šฉ๋ฒ• ๋ฐ ๋„์›€๋ง์„ ๋ณด์—ฌ์คŒ
--version ๋ฒ„์ „ ์ •๋ณด๋ฅผ ๋ณด์—ฌ์คŒ

'Linux' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Linux] ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰ 2์ฐจ ์ •๋ฆฌ (2)  (0) 2025.06.08
[Linux] ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰ 2์ฐจ ์ •๋ฆฌ (1)  (1) 2025.06.07
[Linux] ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด - awk  (0) 2025.06.04
[Linux] ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด - find  (0) 2025.06.03
[Linux] ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด - grep  (0) 2025.06.02
'Linux' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [Linux] ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰ 2์ฐจ ์ •๋ฆฌ (2)
  • [Linux] ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰ 2์ฐจ ์ •๋ฆฌ (1)
  • [Linux] ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด - awk
  • [Linux] ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด - find
The Engineer, Lucy
The Engineer, Lucy
  • The Engineer, Lucy
    Growing up for My Future๐Ÿ’•
    The Engineer, Lucy
    • Instagram
    • GitHub
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (171)
      • Linux (26)
      • Infra (9)
      • Cloud (25)
        • AWS (2)
        • GCP (3)
        • Docker (4)
        • Kubernetes (14)
        • IaC (2)
      • NGINX (1)
      • DevOps (3)
      • Computer Science (17)
        • Data Structure (0)
        • Algorithms (1)
        • Operating System (3)
        • Network (11)
        • Database System (2)
      • Coding Test (85)
        • Algorithms (77)
        • SQL (7)
      • ETC (5)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
  • ๊ณต์ง€์‚ฌํ•ญ

  • ๋งํฌ

    • Lucy's Instagram
    • Lucy's GitHub
  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณต๋ถ€
    ์ฟ ๋ฒ„๋„คํ‹ฐ์Šค
    ๋„คํŠธ์›Œํฌ ๊ธฐ์ดˆ ์ง€์‹
    ๋„์ปค
    cs ๊ธฐ์ดˆ ์ง€์‹ ์ •๋ฆฌ
    Baekjoon
    Kubernetes
    programmers
    ์‰˜ ์Šคํฌ๋ฆฝํŠธ
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ 2๊ธ‰
    Java
    network
    ๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ
    ๋ฆฌ๋ˆ…์Šค
    ๋ฆฌ๋ˆ…์Šค๋งˆ์Šคํ„ฐ
    ๋ฐฑ์ค€
    Shell
    Linux
    ์ž๋ฐ”
    ์…ธ ์Šคํฌ๋ฆฝํŠธ
    docker
    K8s
    dfs
    ๋„คํŠธ์›Œํฌ
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    bfs
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    ์˜ค๋ธ”์™„
    ๋„ˆ๋น„์šฐ์„ ํƒ์ƒ‰
    Shell Script
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
The Engineer, Lucy
[Linux] ๊ฐ€์žฅ ๋งŽ์ด ์“ฐ๋Š” ๋ฆฌ๋ˆ…์Šค ๋ช…๋ น์–ด - sed
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”