B.1. Sed

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

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

sed°¡ ÇÒ ¼ö ÀÖ´Â ÀÏ °¡¿îµ¥, ÀϹÝÀûÀ¸·Î °¡Àå ¸¹ÀÌ ¾²ÀÌ´Â printing(Ç¥ÁØÃâ·ÂÀ¸·Î Ãâ·Â), deletion(»èÁ¦), substitution(ġȯ), ÀÌ ¼¼ °¡Áö¸¦ »ìÆ캸°Ú½À´Ï´Ù.

Ç¥ B-1. ±âº» sed ¿¬»êÀÚ

¿¬»êÀÚÀ̸§¶æ
[ÁÖ¼Ò-¹üÀ§]/pprint[ÁÖ¾îÁø ÁÖ¼Ò ¹üÀ§] Ãâ·Â
[ÁÖ¼Ò-¹üÀ§]/ddelete[ÁÖ¾îÁø ÁÖ¼Ò ¹üÀ§] »èÁ¦
s/pattern1/pattern2/substituteÇÑ ÁÙ¿¡¼­ óÀ½ ³ªÅ¸³ª´Â pattern1À» pattern2·Î ġȯ
[ÁÖ¼Ò-¹üÀ§]/s/pattern1/pattern2/substituteÁÖ¼Ò-¹üÀ§¿¡ ´ëÇؼ­ ÇÑ ÁÙ¿¡ óÀ½ ³ªÅ¸³ª´Â patter1À» pattern2·Î ġȯ
[ÁÖ¼Ò-¹üÀ§]/y/pattern1/pattern2/transformÁÖ¼Ò-¹üÀ§¿¡ ´ëÇؼ­ pattern1¿¡ ³ªÅ¸³ª´Â ¾î¶² ¹®ÀÚ¶óµµ pattern2¿¡ ³ªÅ¸³ª´Â ¹®ÀÚ·Î ¹Ù²Þ(tr°ú µ¿ÀÏ)
gglobalÀÔ·ÂÀÇ ÀÏÄ¡ÇÏ´Â °¢ ÁÙ¿¡¼­ ¹ß»ýÇÏ´Â ¸ðµç ÆÐÅÏ¿¡ ´ëÇØ µ¿ÀÛ

Âü°í: ġȯ(substitute) ¸í·É¾î¿¡ g(global) ¿¬»êÀÚ¸¦ °°ÀÌ ¾È ¾²¸é ÇÑ ÁÙ¿¡ ÆÐÅÏÀÌ ¿©·¯¹ø ÀÏÄ¡ÇÏ´õ¶óµµ ¿ÀÁ÷ ù ¹ø° ÆÐÅϸ¸ ġȯµË´Ï´Ù.

¸í·É¾î ÁÙÀ̳ª ½© ½ºÅ©¸³Æ®¿¡¼­ sed¸¦ ¾µ ¶§´Â Äõ¿ìÆðú ¸î¸î ¿É¼ÇÀÌ ÇÊ¿äÇÒ Áöµµ ¸ð¸¨´Ï´Ù.

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

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

sed -n '/xzy/p'
# -n ¿É¼ÇÀº ÆÐÅÏÀÌ ÀÏÄ¡ÇÏ´Â ÁÙ¸¸ Ãâ·ÂÇϵµ·Ï ÇÕ´Ï´Ù.
# ÀÌ ¿É¼ÇÀÌ ¾øÀ¸¸é ¸ðµç ÀÔ·ÂÀÌ Ãâ·ÂµË´Ï´Ù.
# ¿©±â¼­´Â ´ÜÁö ÇÑ °³ÀÇ ÆíÁý ¸í·É¸¸ ¾²±â ¶§¹®¿¡ -e ¿É¼ÇÀº ÇÊ¿ä¾ø½À´Ï´Ù.

Ç¥ B-2. ¿¹Á¦

Ç¥½Ã¶æ
8dÀÔ·ÂÀÇ 8¹ø° ÁÙÀ» Áö¿ö¶ó.
/^$/dºó ÁÙÀ» ¸ðµÎ Áö¿ö¶ó.
1,/^$/dù ÁÙºÎÅÍ Ã³À½ ³ªÅ¸³ª´Â ºó ÁÙ±îÁö Áö¿ö¶ó.
/Jones/p"Jones"¸¦ Æ÷ÇÔÇÏ´Â ÁÙ¸¸ Ãâ·ÂÇ϶ó(-n ¿É¼ÇÀ» ½á¼­).
s/Windows/Linux/ÀÔ·ÂÀÇ °¢ ÁÙ¿¡¼­ óÀ½ ³ª¿À´Â "Windows"¸¦ "Linux"·Î ġȯÇ϶ó.
s/BSOD/stability/gÀÔ·ÂÀÇ °¢ ÁÙ¿¡¼­ "BSOD"°¡ ³ª¿Ã ¶§ ¸¶´Ù "stability"·Î ġȯÇ϶ó.
s/ *$//¸ðµç ÁÙÀÇ ³¡¿¡ ³ª¿À´Â ºó Ä­À» Áö¿ö¶ó.
s/00*/0/g¿¬¼ÓÀûÀÎ ¸ðµç 0À» ÇϳªÀÇ 0À¸·Î ¾ÐÃàÇ϶ó.
/GUI/d"GUI"¸¦ Æ÷ÇÔÇÏ´Â ¸ðµç ÁÙÀ» Áö¿ö¶ó.
s/GUI//g"GUI"°¡ ³ª¿À´Â ÁÙ¿¡¼­ "GUI"¸¸ Áö¿ö¶ó.

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

ÀÛÀº Á¤º¸: ÅؽºÆ® ÆÄÀÏÀÇ ¸Å ÁÙ¸¶´Ù ºó ÁÙÀ» ³ÖÀ» ¶§´Â sed G filenameÀ̶ó°í ÇÏ¸é ¾ÆÁÖ °£´ÜÇÕ´Ï´Ù.

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

  1. ¿¹ 34-1

  2. ¿¹ 34-2

  3. ¿¹ 12-2

  4. ¿¹ A-3

  5. ¿¹ 12-12

  6. ¿¹ 12-20

  7. ¿¹ A-7

  8. ¿¹ A-12

  9. ¿¹ 12-24

  10. ¿¹ 10-8

  11. ¿¹ 12-29

  12. ¿¹ A-2

  13. ¿¹ 12-10

  14. ¿¹ 12-9

sedÀÇ ´õ¿í ´Ù¾çÇÑ ¾²ÀÓ»õ¸¦ ¾Ë°í ½Í´Ù¸é ¼­Áö»çÇ׿¡¼­ Àû´çÇÑ Âü°í ÀڷḦ ã¾Æ¼­ È®ÀÎÇØ º¸±â ¹Ù¶ø´Ï´Ù.

ÁÖ¼®

[1]

ÁÖ¼Ò ¹üÀ§°¡ ÁÖ¾îÁöÁö ¾Ê´Â´Ù¸é µðÆúÆ®·Î ¸ðµç ÁÙÀ» ó¸®ÇÕ´Ï´Ù.