°Ô½Ã¹° 17°Ç
   
sed »ç¿ë¹ý
±Û¾´ÀÌ : ´õÄÚ ³¯Â¥ : 2019-03-16 (Åä) 17:41 Á¶È¸ : 5628
sed [-e script][-f script-file][file...]

±âº»ÀûÀÎ ±â´ÉÀº ed¿¡¼­ µû ¿ÔÀ¸¸ç, ÀÌ ±â´ÉµéÀº ¸ðµÎ sed¿¡ Àû¿ëÀÌ µÈ´Ù. ´Ù¸¸ ed´Â ´ëÈ­Çü ÆíÁý±âÀ̸ç,
sed´Â ½ºÆ®¸®¹Ö ÆíÁý±âÀÌ´Ù. ´ëÈ­Çü ÆíÁý±â¿Í ½ºÆ®¸®¹Ö ÆíÁý±âÀÇ Â÷ÀÌÁ¡Àº ´ëÈ­Çü ÆíÁý±â´Â ÀÔ·Â ¹× Ãâ·ÂÀÌ
Çϳª·Î ÀÌ·ç¾îÁö¸ç, ½º Æ®¸®¹Ö ÆíÁý±â´Â ÇϳªÀÇ ÀÔ·ÂÀÌ ÇϳªÀÇ Ãâ·ÂÀ» ³½´Ù´Â °ÍÀÌ´Ù.
\n À» °³Ç๮ÀÚ·Î »ç¿ëÇÏ´Â ½ºÆ®¸®¹Ö ¿¡µðÅÍÀÌ´Ù. 

ã±â(search), Ãâ·Â(print),
sed -n '/abd/p' list.txt : list.txt ÆÄÀÏÀ» ÇÑÁÙ¾¿ ÀÐÀ¸¸é¼­(-n : ÀÐÀº °ÍÀ» Ãâ·ÂÇÏÁö ¾ÊÀ½) abd ¹®ÀÚ¸¦ ãÀ¸¸é ±× ÁÙÀ» Ãâ·Â(p)ÇÑ´Ù.

ġȯ(substitute),
sed 's/addrass/address/' list.txt : addrass¸¦ address·Î ¹Ù²Û´Ù. ´Ü, ¿øº»ÆÄÀÏÀ» ¹Ù²ÙÁö ¾Ê°í Ãâ·ÂÀ» ¹Ù²ã¼­ ÇÑ´Ù.
sed 's/addrass/address/' list.txt > list2.txt
sed 's/\t/\ /' list.txt : Åǹ®ÀÚ¸¦ ¿£ÅÍ·Î º¯È¯
sed 's/¡à¡à*/¡à/' list.txt : ( *Ç¥½Ã: ¡à ´Â °ø¹é ¹®ÀÚ¸¦ Ç¥½ÃÇÑ´Ù. ) À§ÀÇ ±¸¹®Àº ÇÑ°³ÀÌ»óÀÇ °ø¹é¹®ÀÚ¿­À» ÇϳªÀÇ °ø¹éÀ¸·Î ¹Ù²Û´Ù.

Ãß°¡(insert)
scriptfile - s/
»èÁ¦(delete)
sed '/TD/d' 1.html : TD ¹®ÀÚ°¡ Æ÷ÇÔµÈ ÁÙÀ» »èÁ¦ÇÏ¿© Ãâ·ÂÇÑ´Ù.
sed '/Src/!d' 1.html : Src ¹®ÀÚ°¡ ÀÖ´Â ÁÙ¸¸ Áö¿ìÁö ¾Ê´Â´Ù.
sed '1,2d' 1.html : óÀ½ 1ÁÙ, 2ÁÙÀ» Áö¿î´Ù.
sed '/^$/d 1.html : °ø¹é¶óÀÎÀ» »èÁ¦ÇÏ´Â ¸í·ÉÀÌ´Ù
ÆÄ ÀÏ À̸§¸¸À» »Ì¾Æ³»´Â Á¤±Ô½Ä
s/^.*\/\([a-zA-Z0-9.]*\)".*$/\1/ : ^´Â ¶óÀÎÀÇ ¸Ç óÀ½, .* ¾Æ¹«¹®ÀÚ¿­, \(, \)Àº Á¤±ÔÇ¥Çö½ÄÀ» ±×·ìÈ­, $ ´Â ¶óÀÎÀÇ ¸Ç ³¡.
( s;^.*\/\([a-zA-Z0-9.]*\)".*$;\1;) \1´Â ±×·ìÈ­µÈ ù¹ø° ¿ä¼Ò¸¦ ¸»ÇÑ´Ù.
[a-zA-Z0-9.] ´Â ¾ËÆĺª°ú ¼ýÀÚ ¹× .(ÄÞ¸¶)¸¦ Ç¥ÇöÇÏ´Â ¹®ÀÚ(character)¸¦ ¸»ÇÑ´Ù.
Áï GF02.jpg¿Í °°Àº ¹®ÀÚ¿­À» ù¹ø° ±×·ìÈ­ÇÏ°í ³­ ´ÙÀ½ ¶óÀÎ Àüü¸¦ ±×·ìÈ­µÈ ³»¿ëÀ¸·Î ¹Ù²Ù´Â °ÍÀÌ´Ù. 

/g : globalÀ» ÀÇ¹Ì ÇÑÁÙ¿¡ ´ë»ó¹®ÀÚ°¡ ¿©·¯°³ÀÏ ¶§µµ ó¸®Çϵµ·Ï ÇÑ´Ù.

who | sed -e 's; .*$;;' : °¢ ¶óÀÎÀÇ Ã¹ ¹ø° °ø¹é¿¡¼­ºÎÅÍ ¸¶Áö¸·±îÁö »èÁ¦Ç϶ó.

who | sed -e 's;^.* ;;' : °¢ ¶óÀÎÀÇ Ã³À½ºÎÅÍ ¸Ç ¸¶Áö¸· °ø¹é±îÁö »èÁ¦Ç϶ó.

who | sed -e 's;^.*:;;' : °¢ ¶óÀÎÀÇ Ã³À½ºÎÅÍ : ¹®ÀÚ°¡ ÀÖ´Â °÷(:¹®ÀÚÆ÷ÇÔ)±îÁö »èÁ¦Ç϶ó. 

-n ¿É¼Ç
sed´Â Ç×»ó Ç¥ÁØ Ãâ·Â¿¡¼­ ÀÔ·Â ¹ÞÀº °¢ ¶óÀÎÀ» ³ªÅ¸³½´Ù´Â °ÍÀ» ¾Ë¾Æ³Â´Ù. ±×·¯³ª ¶§¶§·Î ÇÑ ÆÄÀϷκÎÅÍ ¸î °³ÀÇ ¶óÀεéÀ» ÃßÃâÇØ ³»±â À§ÇØ sed¸¦ »ç¿ëÇϱ⸦ ¿øÇÒ ¶§µµ ÀÖ´Ù. ÀÌ·¯ÇÑ °æ¿ì¿¡ -n¿É¼ÇÀ» »ç¿ëÇÑ´Ù. ÀÌ ¿É¼ÇÀº »ç¿ëÀÚ°¡ ¸¸¾à ÇØ¾ß ÇÒ ÀÏÀ» Á¤È®È÷ ¸»ÇØ ÁÖÁö ¾Ê´Â´Ù¸é ÀÓÀÇÀÇ ¶óÀÎÀ» ÇÁ¸°Æ®ÇÏ´Â °ÍÀ» ¿øÇÏÁö ¾Ê´Â´Ù°í sed¿¡°Ô ¸»ÇÑ´Ù. µû¶ó¼­ p¸í·ÉÀÌ °°ÀÌ ¾²ÀδÙ. ¶óÀÎ ¹øÈ£¿Í ¶óÀÎ ¹øÈ£ÀÇ ¹üÀ§¸¦ ³ªÅ¸³¿À¸·Î½á sed¸¦ »ç¿ëÇÏ¿© ÅؽºÆ®ÀÇ ¶óÀεéÀ» ¼±ÅÃÀûÀ¸·Î ÇÁ¸°Æ®ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù. ´ÙÀ½¿¡¼­ º¼ ¼ö ÀÖ´Â ¹Ù¿Í °°ÀÌ, ÇÑ ÆÄÀϷκÎÅÍ Ã¹ ¹ø° µÎ ¶óÀÎÀÌ ÇÁ¸°Æ®µÇ¾ú´Ù.

$ sed -n '1,2p' intro Just print the first 2 lines from intro file.

¸¸¾à ¶óÀÎ ¹øÈ£ ´ë½Å¿¡ ½½·¡½Ã·Î ¿¡¿ö ½ÎÀÎ ¹®ÀÚ¿­°ú ÇÔ²² p¸í·ÉÀÌ ¾²Àδٸé sed´Â ÀÌµé ¹®ÀÚµéÀÌ Æ÷ÇÔÇÏ°í Àִ ǥÁØ ÀÔ·ÂÀ» ÅëÇؼ­ ¶óÀεéÀ» ÇÁ¸°Æ®ÇÏ°Ô µÈ´Ù. µû¶ó¼­ ÇϳªÀÇ ÆÄÀϷκÎÅÍ Ã³À½ÀÇ µÎ ¶óÀÎÀ» ÇÁ¸°Æ®Çϱâ À§ÇÏ¿© ´ÙÀ½°ú °°ÀÌ »ç¿ëµÉ ¼ö ÀÖ´Ù.

$ sed -n '/UNIX/p' intro Just print lines containing UNIX
sed '5d' : ¶óÀÎ 5¸¦ »èÁ¦
sed '/[Tt]est/d' : Test ¶Ç´Â test¸¦ Æ÷ÇÔÇÏ´Â ¸ðµç ¶óÀεéÀ» »èÁ¦
sed -n '20,25p' text : text·ÎºÎÅÍ 20¿¡¼­ 25±îÁöÀÇ ¶óÀε鸸 ÇÁ¸°Æ®
sed '1,10s/unix/UNIX/g' intro : introÀÇ Ã³À½ 10°³ÀÇ ¶óÀεéÀÇ unix¸¦ UNIX·Î º¯°æ
sed '/jan/s/-1/-5' : janÀ» Æ÷ÇÔÇÏ´Â ¸ðµç ¶óÀεé À§ÀÇ Ã¹ ¹ø° -1À» -5·Î º¯°æ
sed 's/...//' data : °¢ data¶óÀÎÀ¸·ÎºÎÅÍ Ã³À½ ¼¼ °³ÀÇ ¹®ÀÚµéÀ» »èÁ¦
sed 's/...$//' data : °¢ µ¥ÀÌÅÍ ¶óÀÎÀ¸·ÎºÎÅÍ ¸¶Áö¸· 3¹®ÀÚµéÀ» »èÁ¦
sed -n '1' text : ºñ ÇÁ¸°Æ® ¹®ÀÚµéÀ» \nnÀ¸·Î (¿©±â¼­ nnÀº ±× ¹®ÀÚÀÇ 8Áø¼ö °ªÀÓ),
±× ¸®°í ÅÇ ¹®ÀÚµéÀ» > ·Î ³ªÅ¸³»´Â °¢ ÅؽºÆ®·ÎºÎÅÍÀÇ ¸ðµç ¶óÀεéÀ» ÇÁ¸°Æ®

awk ¸í·É¾î

awk '/west/' datafile : west ¶ó´Â ±ÛÀÌ ÀÖ´Â ÁÙ Ãâ·Â
awk '/^north/' datafile : north·Î ½ÃÀÛÇÏ´Â ÁÙ Ãâ·Â
awk '/^(no | so)/' datafile : no ¶Ç´Â so ·Î ½ÃÀÛÇÏ´Â ÁÙ Ãâ·Â
awk '{ print $3, $2 }' datafile : datafile ¸®½ºÆ®ÀÇ ¼¼ ¹ø° ¿Í µÎ ¹ø° Çʵ带 ½ºÆäÀ̽º·Î ¶ç¾î¼­ Ãâ·Â
awk '{ print $3 $2 }' datafile : datafile ¸®½ºÆ®ÀÇ ¼¼ ¹ø° ¿Í µÎ ¹ø° Çʵ带 ±×³É ºÙ¿©¼­ Ãâ·Â 
awk '{ print "Number of fields : " NF} ' datafile : datafileÀÇ °¢ ÁÙ¸¶´ÙÀÇ Çʵå¼ö¸¦ ¸®ÅÏÇÑ´Ù.
awk '$5 ~ /\.[7-9]+/' datafile : ´Ù¼¸ ¹ø° Çʵ尡 ¸¶Ä§Ç¥ ´ÙÀ½¿§ 7°ú 9»çÀÌ ¼ýÀÚ°¡ Çϳª ÀÌ»ó ³ª¿À´Â ·¹ÄÚµå Ãâ·Â
awk '$2 !~ /E/ { print $1, $2 }' datafile : µÎ ¹ø° Çʵ忡 E ÆÐÅÏÀÌ ¾ø´Â ·¹ÄÚµåÀÇ Ã¹ ¹ø°¿Í µÎ ¹ø° Çʵå Ãâ·Â
awk '$3 ~ /^Joel/{ print $3 " is a nice guy."} ' datafile : ¼¼ ¹ø° Çʵ尡 Joel·Î ½ÃÀÛÇϸé " is a nice guy"¿Í ÇÔ²² Ãâ·Â
awk '$8 ~ /[0-9][0-9]$/ { print $8 }' datafile : ¿©´ü ¹ø° Çʵ尡 µÎ °³ÀÇ ¼ýÀÚÀÌ¸é ±× Çʵ尡 Ãâ·Â
awk '$4 ~ /Chin$/ { print "The price is $" $8 "." }' datafile : ³× ¹ø° Çʵ尡 ChineÀ¸·Î ³¡³ª¸é "The price is $" 8¹ø ÇÊµå ¹× ¸¶Ä§Ç¥°¡ Ãâ·Â
awk -F: '{ print $1 } ' datafile : -F ¿É¼ÇÀº ÀÔ·Â Çʵ带 ':'·Î ±¸º°.
awk -F"[ :]" '{ print $1, $2 } ' datafile : ÀÔ·Â Çʵå·Î ½ºÆäÀ̽º¿Í ':'¸¦ ÇÊµå ±¸º°ÀÚ·Î »ç¿ë
awk -f awk_script.file datafile : -f ¿É¼ÇÀº awk ½ºÅ©¸³Æ® ÆÄÀÏ »ç¿ëÇÒ ¶§ ¾¸.


awk '$7 == 5' datafile : 7¹ø Çʵ尡 5¿Í °°´Ù¸é Ãâ·Â
awk '$2 == "CT" { print $1, $2 }' datafile : 2¹ø Çʵ尡 "CT" ¹®ÀÚ¿Í °°À¸¸é 1, 2 ¹ø Çʵå Ãâ·Â
awk '$7 < 5 { print $4, $7}' datafile : 7¹ø Çʵ尡 5º¸´Ù ÀÛ´Ù¸é 4¹ø, 7¹ø Çʵå Ãâ·Â
awk '$6 > .9 { print $1, $6}' datafile : 6¹ø Çʵ尡 .9 º¸´Ù Å©´Ù¸é 1¹ø, 6¹ø Ãâ·Â
awk '$8 > 10 && $8 < 17 ' datafile 
awk '$2 == "NW" || $1 ~ /south/ { print $1, $2 }' datafile




Ãâó : http://ai.korea.ac.kr/~kaizer/unix/scripts.htm

À̸§ Æнº¿öµå
ºñ¹Ð±Û (üũÇÏ¸é ±Û¾´À̸¸ ³»¿ëÀ» È®ÀÎÇÒ ¼ö ÀÖ½À´Ï´Ù.)
¿ÞÂÊÀÇ ±ÛÀÚ¸¦ ÀÔ·ÂÇϼ¼¿ä.
   

miwit.com sir.co.kr DNS Powered by DNSEver.com DNS Powered by DNSEver.com