B.1. Sed

sed´Â ºñ ´ëÈ­ ¸ðµå(non-interactive)ÀÇ ÁÙ ´ÜÀ§ ÆíÁý±âÀÔ´Ï´Ù. Ç¥ÁØÀÔ·ÂÀ̳ª ÆÄÀÏ¿¡¼­ ÅØ½ºÆ®¸¦ ÀÔ·ÂÀ¸·Î ¹Þ¾Æ ÁÖ¾îÁø ÁÙ¿¡ ´ëÇØ¼­ ¾î¶² ÀÏÀ» ÇÑ ´ÙÀ½¿¡ ±× °á°ú¸¦ Ç¥ÁØÃâ·ÂÀ̳ª ÆÄÀÏ·Î ³» º¸³À´Ï´Ù. sed´Â ½© ½ºÅ©¸³Æ®¿¡¼­ ÆÄÀÌÇÁ¿¡ °É¾î ¾µ ¼ö ÀÖ´Â ¸î¸î µµ±¸Áß ÇϳªÀÔ´Ï´Ù.

sed´Â ÁÖ¾îÁø ÁÖ¼Ò ¹üÀ§(address range)¿¡ ´ëÇØ ÀÔ·ÂÀÇ ¾î¶² ÁÙÀ» Á¶ÀÛÇÒ °ÍÀÎÁö¸¦ °áÁ¤ÇÕ´Ï´Ù. ÀÌ ÁÖ¼Ò ¹üÀ§´Â ÁÙ ¹øÈ£·Î ÁÖ¾îÁú ¼öµµ ÀÖ°í ÀÏÄ¡ÇÑ´À ÆÐÅÏÀ¸·Î ÁÖ¾îÁú ¼öµµ ÀÖ½À´Ï´Ù. ¿¹¸¦ µé¸é, 3d´Â ÀÔ·ÂÀÇ 3¹øÂ° ÁÙÀ» Áö¿ì¶ó´Â ½ÅÈ£À̰í, /windows/dÀº "windows"¸¦ Æ÷ÇÔÇÏ´Â ¸ðµç ÁÙÀ» Áö¿ì¶ó´Â ¶æÀÔ´Ï´Ù.

sed°¡ ÇÒ ¼ö ÀÖ´Â ÀÏ °¡¿îµ¥, ÀϹÝÀûÀ¸·Î °¡Àå ¸¹ÀÌ ¾²ÀÌ´Â ¼¼ °¡Áö¸¸ »ìÆìº¸µµ·Ï ÇϰڽÀ´Ï´Ù. printing(stdout(Ç¥ÁØÃâ·Â)À¸·Î), deletion(Áö¿ì±â), substitution(¹Ù²Ù±â)ÀÔ´Ï´Ù.

표 B-1. sed ¿¬»êÀÚ

¿¬»êÀÚÀ̸§¶æ
/ÁÖ¼Ò ¹üÀ§/pprintÁ¤ÇØÁø ÁÖ¼Ò ¹üÀ§¸¦ Âï±â
/ÁÖ¼Ò ¹üÀ§/ddeleteÁ¤ÇØÁø ÁÖ¼Ò ¹üÀ§¸¦ Áö¿ì±â
s/pattern1/pattern2/substitutepattern1À» pattern2·Î ¹Ù²Ù±â
gglobalÀÏÄ¡ÇÏ´Â ÁÙ¿¡¼­ ¹ß»ýÇÏ´Â ¸ðµç ÆÐÅÏ¿¡ ´ëÇØ¼­ µ¿ÀÛ

참고: ¹Ù²Ù±â ¸í·É¾î¿¡ g(global)°¡ ¾ø´Ù¸é ÇÑ ÁÙ¿¡ ÆÐÅÏÀÌ ¿©·¯¹ø ÀÏÄ¡ÇÏ´õ¶óµµ ¿ÀÁ÷ ù ¹øÂ° ÆÐÅϸ¸ ¹Ù²î°Ô µË´Ï´Ù.

¸í·É¾î ÁÙÀ̳ª ½© ½ºÅ©¸³Æ®¿¡¼­ sed¸¦ ¾µ ¶§, Àοë(quoting)°ú ¿É¼ÇÀÌ ÇÊ¿äÇÒ °ÍÀÔ´Ï´Ù.

sed -e '/^$/d'
# -e ¿É¼ÇÀº ±× ´ÙÀ½¿¡ ³ª¿À´Â ¹®ÀÚ¿­À» sed ¸í·É¾î·Î ÇØ¼®µÇ°Ô ÇÕ´Ï´Ù.
# "°­Á¦"·Î Àοë('')À» ÇÏ°Ô µÇ¸é ¸í·É¾î¿¡ ³ª¿À´Â Ư¼ö ¹®ÀÚ°¡ ½ºÅ©¸³Æ®¿¡ ÀÇÇØ¼­
# Á¤±Ô Ç¥Çö½ÄÀ¸·Î ÀçÇØ¼® µÇ´Â °ÍÀ» ¸·¾ÆÁÝ´Ï´Ù.
# (ÀÌ·¸°Ô ÇØ¼­ sed°¡ ¸í·É¾îÀÇ Á¤±Ô Ç¥Çö½Ä È®ÀåÀ» Çϵµ·Ï ÇØ ÁÝ´Ï´Ù.)

참고: sed, awk µÑ ´Ù, -e ¿É¼ÇÀ» ½á¼­ ´ÙÀ½¿¡ ³ª¿À´Â ¹®ÀÚ¿­ÀÌ ¸í·É¾î³ª ¸í·É¾î ÁýÇÕÀ̶ó´Â °ÍÀ» ÁöÁ¤ÇØ ÁÝ´Ï´Ù. ¸¸¾à¿¡ ¹®ÀÚ¿­¿¡ ÇϳªÂ¥¸® ¸í·É¾î¸¸ µé¾î ÀÖ´Ù¸é ÀÌ ¿É¼ÇÀº ¾È Àû¾îÁ൵ µË´Ï´Ù.

sed -n '/xzy/p'
# -n ¿É¼ÇÀº ÆÐÅÏÀÌ ÀÏÄ¡ÇÏ´Â Áٵ鸸 Âï°Ô ÇÕ´Ï´Ù.
# ÀÌ ¿É¼ÇÀ» ÁöÁ¤ÇÏÁö ¾ÊÀ¸¸é ¸ðµç ÀÔ·ÂÀÌ ÂïÈú °ÍÀÔ´Ï´Ù.

표 B-2. ¿¹

Ç¥½Ã¶æ
8dÀÔ·ÂÀÇ 8¹øÂ° ÁÙÀ» Áö¿ö¶ó.
/^$/dºó ÁÙÀ» ¸ðµÎ Áö¿ö¶ó.
1,/^$/dù ÁÙºÎÅÍ Ã³À½ ³ªÅ¸³ª´Â ºó ÁÙ±îÁö¸¦ Áö¿ö¶ó.
/Jones/p"Jones"¸¦ Æ÷ÇÔÇÏ´Â ÁÙ¸¸ Âï¾î¶ó(-n ¿É¼ÇÀ» ½á¼­).
s/Windows/Linux/°¢ ÁÙ¿¡¼­ óÀ½ ³ª¿À´Â "Windows"¸¦ "Linux"·Î ¹Ù²ã¶ó.
s/BSOD/stability/g°¢ ÁÙ¿¡¼­ "BSOD"°¡ ³ª¿Ã ¶§¸¶´Ù "stability"·Î ¹Ù²ã¶ó.
/GUI/d"GUI"¸¦ Æ÷ÇÔÇÑ ¸ðµç ÁÙÀ» Áö¿ö¶ó.
s/GUI//g"GUI"°¡ ³ª¿À´Â ÁÙ¿¡¼­ ´ÜÁö "GUI"¸¸ Áö¿ö¶ó.

참고: ¾î¶² ´Ü¾î¸¦ ±æÀ̰¡ 0ÀÎ ¹®ÀÚ¿­·Î ¹Ù²Ù´Â °ÍÀº ±× ÁÙ¿¡¼­ ±× ´Ü¾î¸¸À» Áö¿ì´Â °ÍÀ̶û ¶È°°½À´Ï´Ù. ÀÌ·¸°Ô ÇÏ¸é ±× ´Ü¾î¸¦ »« ³ª¸ÓÁöµéÀº ¾Æ¹« ¿µÇâµµ ¹ÞÁö ¾Ê½À´Ï´Ù. ¾î´À ¾îÇø®ÄÉÀ̼ÇÀ̳ª °¡Àå Áß¿äÇÑ ºÎºÐÀº GUI¿Í À½Çâ È¿°úÀÌ´Ù.¶ó´Â ÁÙ¿¡ s/GUI//¸¦ °É¸é
¾î´À ¾îÇø®ÄÉÀ̼ÇÀ̳ª °¡Àå Áß¿äÇÑ ºÎºÐÀº ¿Í À½Çâ È¿°úÀÌ´Ù.
¶ó´Â °á°ú°¡ ³ª¿É´Ï´Ù.

½© ½ºÅ©¸³Æ®¿¡¼­ sed°¡ ¾î¶»°Ô ¾²ÀÌ´Â Áö¸¦ º¸·Á¸é ´ÙÀ½À» Âü°íÇϼ¼¿ä.

  1. 예 2-3

  2. 예 2-4

  3. 예 3-47

  4. 예 A-2

  5. 예 3-62

  6. 예 3-58

  7. 예 A-4

  8. 예 A-8

  9. 예 3-64

sedÀÇ ´õ¿í ´Ù¾çÇÑ »ç¿ë¹ýÀ» ¾Ë°í ½Í´Ù¸é 서지사항¿¡¼­ Àû´çÇÑ Âü°í ÀڷḦ ã¾Æ¼­ È®ÀÎÇØ º¸±â ¹Ù¶ø´Ï´Ù.