¿ù°£ Àα⠰Խù°

°Ô½Ã¹° 56°Ç
   
sed ¸í·É »ç¿ëÇϱâ
±Û¾´ÀÌ : ÃÖ°í°ü¸®ÀÚ ³¯Â¥ : 2010-02-04 (¸ñ) 19:40 Á¶È¸ : 7547
±ÛÁÖ¼Ò :
                          

¿¡µðÅÍ ¼±ÅÃÇϱâ
À¯´Ð½º¿¡´Â ÆÄÀÏÀ» ÆíÁýÇÒ ¼ö ÀÖ´Â ¿©·¯ ¿É¼ÇµéÀÌ ÀÖ´Ù. Áö±Ýµµ ¸Ó¸®¿¡ vi, emacs, jed µîÀÌ ¶°¿À¸¥´Ù. °¢ÀÚ(Å° ¹ÙÀεùÀ» Æ÷ÇÔÇÏ¿©) ¼±È£ÇÏ´Â ¿¡µðÅÍ°¡ ÀÖÀ» °ÍÀÌ´Ù. ÀÌ·¯ÇÑ ¿¡µðÅ͸¦ »ç¿ëÇÏ¿© À¯´Ð½º¸¦ °ü¸®ÇÏ°í, ÇÁ·Î±×·¡¹ÖÀ» ½±°Ô ¼öÇàÇÒ ¼ö ÀÖ´Ù.
´ëÈ­Çü(interactive) ¿¡µðÅÍ°¡ ÁÁ±â´Â ÇÏÁö¸¸ ÇÑ°èµµ ÀÖ´Ù. ´ëÈ­ÇüÀ̶õ Ư¡ÀÌ °­Á¡ÀÌ µÉ ¼ö ÀÖÁö¸¸, ¶ÇÇÑ ¾àÁ¡µµ µÉ ¼ö ÀÖ´Ù. ÆÄÀÏ ±×·ì¿¡ ºñ½ÁÇÑ À¯ÇüÀÇ º¯°æÀ» ¼öÇàÇØ¾ß ÇÑ´Ù°í »ý°¢ÇØ º¸¶ó. ´çÀå ÁÁ¾ÆÇÏ´Â ¿¡µðÅ͸¦ »ç¿ëÇÏ¿© ¹Ýº¹ÀûÀ̸鼭 ½Ã°£ÀÌ ¸¹ÀÌ °É¸®´Â ÆíÁý ÀÛ¾÷À» Á÷Á¢ ¼öÇàÇÒ ¼ö´Â ÀÖÀ» °ÍÀÌ´Ù. ÇÏÁö¸¸ ´õ ³ªÀº ¹æ¹ýÀÌ ÀÖ´Ù.


sed
ÆÄÀÏ ÆíÁý °úÁ¤À» ÀÚµ¿È­ÇÏ¿© ÆÄÀÏ ÆíÁýÀ» ÀÏ°ý·Î ó¸®Çϰųª, ±âÁ¸ ÆÄÀÏÀ» º¯°æÇÒ ¼ö ÀÖ´Â °í±Þ ±â´ÉÀ» °¡Áø ½ºÅ©¸³Æ®¸¦ ÀÛ¼ºÇÒ ¼ö ÀÖ´Ù¸é Âü ÁÁÀ» °Í °°´Ù. ´ÙÇàÈ÷µµ ¿ì¸®¿¡°Ô "sed"°¡ ÀÖ´Ù.
sed´Â ¸®´ª½º ¹× °ÅÀÇ ¸ðµç À¯´Ð½º Á¦Ç°±º¿¡ Æ÷ÇÔµÈ °æ·®ÀÇ ½ºÆ®¸² ¿¡µðÅÍÀÌ´Ù. sed´Â ÁÁÀº ±â´ÉµéÀÌ ¸¹ÀÌ °®Ãß¾ú´Ù. ¿ì¼±, ¸Å¿ì °¡º±´Ù. ±âÁ¸ ½ºÅ©¸³Æà ¾ð¾îº¸´Ù ÈξÀ ÀÛ´Ù. µÑ°, sed´Â ½ºÆ®¸²(stream) ¿¡µðÅÍÀ̱⠶§¹®¿¡ stdin¿¡¼­ ¹ÞÀº µ¥ÀÌÅ͸¦ ÆíÁýÇÒ ¼ö ÀÖ´Ù. µû¶ó¼­ ÆíÁýÇÒ µ¥ÀÌÅ͸¦ µð½ºÅ© »óÀÇ ÆÄÀÏ¿¡ ÀúÀåÇÒ ÇÊ¿ä°¡ ¾ø´Ù. µ¥ÀÌÅÍ´Â sed·Î ½±°Ô ¿¬°á(pipe)µÉ ¼ö Àֱ⠶§¹®¿¡ °­·ÂÇÑ ½© ½ºÅ©¸³Æ®ÀÇ ±æ°í º¹ÀâÇÑ ÆÄÀÌÇÁ¶óÀÎÀÇ ÀϺημ­ sed¸¦ ½±°Ô »ç¿ëÇÒ ¼ö ÀÖ´Ù. Çѹø ½ÃµµÇغ¸¶ó.


GNU sed
¸®´ª½º »ç¿ëÀڵ鿡°Ô °¡Àå ÀûÇÕÇÑ sed ¹öÀüµé Áß Çϳª°¡ GNU sedÀÏ °ÍÀÌ´Ù. ÇöÀç ¹öÀüÀº 3.02 ÀÌ´Ù. ¸ðµç ¸®´ª½º ¹èÆ÷ÆÇ¿¡´Â GNU sed°¡ ÀÖ´Ù. GNU sed´Â ¼Ò½º°¡ ¹«·á·Î ¹èÆ÷µÇ°í, POSIX sed Ç¥ÁØ¿¡ ´ëÇÑ È®Àåµµ ¸¹±â ¶§¹®¿¡ ´ëÁßÀûÀ¸·Î »ç¿ëµÈ´Ù. GNU sed´Â ¶óÀÎ ±æÀÌ Á¦ÇÑ °°Àº ÀÌÀüÀÇ »ó¿ë ¹öÀüÀÇ ÇÑ°è¿¡¼­ ¹þ¾î³ª¼­ ¾î¶² ¶óÀÎÀÌ¶óµµ ½±°Ô ´Ù·ê ¼ö ÀÖ´Ù.


ÃֽŠGNU sed
ÀÌ ±ÛÀ» ¾²¸é¼­ ¸¹Àº sed »ç¿ëÀÚµéÀÌ GNU sed 3.02a¸¦ ÂüÁ¶ÇÏ°í ÀÖ´Ù´Â °ÍÀ» ¾Ë¾Ò´Ù. ÀÌ»óÇÏ°Ôµµ ³ª´Â ftp.gnu.org(Âü°íÀÚ·á)¿¡¼­ sed 3.02a ¸¦ ãÁö ¸øÇß´Ù. ±×·¡¼­ ´Ù¸¥ °÷À» ã¾Æ¾ß Çß´Ù. °á±¹ /pub/sedÀÇ alpha.gnu.org¿¡¼­ ã¾Ò´Ù. ÀÌ°ÍÀ» ´Ù¿î·ÎµåÇÏ¿© ÄÄÆÄÀÏÇÏ°í ¼³Ä¡ÇÏÀÚ. 5ºÐ ÈÄ¿¡ ÃֽŠ¹öÀüÀÇ sed, 3.02.80ÀÌ »ý°å´Ù.

¿Ã¹Ù¸¥ sed
ÀÌ ½Ã¸®Áî¿¡¼­´Â GNU sed 3.02.80À» »ç¿ëÇÑ´Ù. ÀÌ ±Û¿¡¼­´Â ¹°·ÐÀÌ°í ¾ÕÀ¸·ÎÀÇ ½Ã¸®Áî¿¡¼­µµ GNU sed 3.02³ª 3.02a ´Â »ç¿ëÇÏÁö ¾ÊÀ» ¿¹Á¤ÀÌ´Ù. ºñ GNU sed¸¦ »ç¿ëÇÏ°í ÀÖ´Ù¸é °á°ú´Â ´Ù¾çÇÏ´Ù. ½Ã°£À» Àá±ñ µé¿©¼­ GNU sed 3.02.80¸¦ ¼³Ä¡Çغ¸´Â °ÍÀº ¾î¶³±î? ÀÌÈÄ ½Ã¸®Á ÀÐÀ» ¶§µµ ½ÇÁúÀûÀ¸·Î µµ¿òÀ» ¹ÞÀ» ¼ö ÀÖ°í, ÃÖ°íÀÇ sed¸¦ °æÇèÇغ¸´Â ³î¶ó¿î ±âȸ°¡ µÉ Å×´Ï ¸»ÀÌ´Ù.

sed ¿¹Á¦
sed´Â ÀÎDz µ¥ÀÌÅÍ¿¡ ´ëÇØ »ç¿ëÀÚ°¡ ÁöÁ¤ÇÑ ÆíÁý ¿¬»ê("commands")À» ¼öÇàÇÏ¿© ÀÛµ¿ÇÑ´Ù. sed´Â ¶óÀÎ ±â¹Ý(line-based)À̱⠶§¹®¿¡ ¸í·É¾î´Â ¼ø¼­´ë·Î °¢ ¶óÀο¡¼­ ¼öÇàµÈ´Ù. sed´Â °á°ú¸¦ Ç¥ÁØ ¾Æ¿ôDz(stdout)¿¡ ÀÛ¼ºÇÑ´Ù. ¾î¶² ÀÎDz ÆÄÀϵ鵵 ¼öÁ¤ÇÏÁö ¾Ê´Â´Ù.
¿¹Á¦¸¦ º¸µµ·Ï ÇÏÀÚ. sed°¡ Áß¿äÇÑ Å½ºÅ©¸¦ ¾î¶»°Ô ¼öÇàÇϴ°¡ º¸´Ù´Â sed°¡ ¾î¶»°Ô ÀÛµ¿ÇÏ´ÂÁö¸¦ ¼³¸íÇÒ °ÍÀ̱⠶§¹®¿¡ ¸ÕÀú Á¦°øµÇ´Â ÄÚµåµéÀº ¾à°£ ÀÌ»óÇÏ´Ù. ÇÏÁö¸¸ sed°¡ óÀ½À̶ó¸é ÀÌ°ÍÀ» ÀÌÇØÇÏ´Â °Íµµ Áß¿äÇÏ´Ù.
$ sed -e 'd' /etc/services

ÀÌ ¸í·É¾î¸¦ ÀÔ·ÂÇÏ¸é ¾Æ¿ôDzÀÌ ¾ø´Ù. ¿Ö ±×·²±î? ÀÌ ¿¹Á¦¿¡¼­ ÆíÁý ¸í·É¾îÀÎ 'd'¿Í ÇÔ²² sed¸¦ È£ÃâÇß´Ù. sed´Â /etc/services ÆÄÀÏÀ» ¿­°í, ÆÐÅÏ ¹öÆÛ·Î ¶óÀÎÀ» ÀÐ¾î µéÀÌ°í, ÆíÁý ¸í·É¾î("delete line")¸¦ ¼öÇàÇÑ ´ÙÀ½, ÆÐÅÏ ¹öÆÛ¸¦ ÇÁ¸°Æ®Çß´Ù.(ºñ¾îÀÖ´Ù.) ±×¸®°í ³ª¼­ ÈÄ¼Ó ¶óÀε鿡 ´ëÇؼ­µµ ÀÌ °°Àº ´Ü°èµéÀ» ¹Ýº¹Çß´Ù. ÀÌ°ÍÀº ¾î¶² ¾Æ¿ôDzµµ ¸¸µéÁö ¾Ê¾Ò´Ù. 'd' ¸í·É¾î´Â ÆÐÅÏ ¹öÆÛ¿¡¼­ ¸ðµç ¶óÀÎÀ» ¿µ±¸È÷ »èÁ¦Çϱ⠶§¹®ÀÌ´Ù.
ÀÌ ¿¹Á¦ÀÇ Æ÷ÀÎÆ®´Â µÎ °¡ÁöÀÌ´Ù. ¿ì¼±, /etc/services´Â Àý´ë º¯°æµÇÁö ¾Ê¾Ò´Ù. ÀÌ°ÍÀº sed´Â ÀÌ°ÍÀ» ÀÎDzÀ¸·Î¼­ »ç¿ëÇÏ¿© ¸í·ÉÇà ¶óÀο¡¼­ ¿©·¯ºÐÀÌ ÁöÁ¤ÇÑ ÆÄÀÏ¿¡¼­ Àб⸸ ÇÑ´Ù. ÆÄÀÏÀ» ¼öÁ¤ÇÏÁö ¾Ê´Â´Ù. µÎ ¹ø°·Î ¾Ë¾Æ¾ß ÇÒ °ÍÀº sed´Â ¶óÀÎ(line) ÁöÇâÀ̶õ Á¡ÀÌ´Ù. 'd' ¸í·É¾î´Â sed¿¡°Ô ¸ðµç ÀÎÄ¿¹Ö µ¥ÀÌÅ͵éÀ» »èÁ¦Ç϶ó°í ¸í·ÉÇÏÁö ¾Ê´Â´Ù. ´ë½Å sed´Â /etc/servicesÀÇ °¢ ¶óÀÎÀ» Çϳª¾¿ ³»ºÎ ¹öÆÛ(ÆÐÅÏ ¹öÆÛ)·Î ÀÐ¾î µéÀδÙ. ÀÏ´Ü ¶óÀÎÀÌ ÆÐÅÏ ¹öÆÛ¿¡¼­ ÀÐÇôÁö¸é 'd' ¸í·É¾î°¡ ÀÛµ¿ÇÏ°í ÆÐÅÏ ¹öÆÛÀÇ ³»¿ëÀ» ÇÁ¸°Æ®ÇÑ´Ù. (ÀÌ ¿¹Á¦¿¡¼­´Â ¾Æ¹«°Íµµ ¾ø¾ú´Ù.) ³ªÁß¿¡ ¸í·É¾î°¡ Àû¿ëµÉ ¶óÀÎÀ» Á¤ÇÏ´Â ÁÖ¼Ò ¹üÀ§¿¡ ´ëÇØ ¼³¸íÇÏ°Ú´Ù. ÁÖ¼Ò°¡ ¾ø´Ù¸é ¸í·É¾î´Â ¸ðµç ¶óÀο¡ Àû¿ëµÈ´Ù.
¸¶Áö¸·À¸·Î, 'd' ¸í·É¾î¿¡ ½Ì±Û ÄõÆ®¸¦ »ç¿ëÇÑ´Ù´Â °ÍÀÌ´Ù. sed ¸í·É¾î¿¡´Â ½Ì±Û ÄõÆ®¸¦ »ç¿ëÇÏ´Â ½À°üÀ» µéÀÌ´Â °ÍÀÌ ÁÁ´Ù.

±âŸ sed ¿¹Á¦
´ÙÀ½Àº sed¸¦ »ç¿ëÇÏ¿© ¾Æ¿ôDz ½ºÆ®¸²¿¡¼­ /etc/services ÆÄÀÏÀÇ Ã¹ ¹ø° ÁÙÀ» Á¦°ÅÇÏ´Â ¹æ¹ýÀ» º¸¿©ÁÖ´Â ¿¹Á¦ÀÌ´Ù.
$ sed -e '1d' /etc/services | more

¿©·¯ºÐµµ º¸´Ù½ÃÇÇ ÀÌ ¸í·É¾î´Â ù ¹ø° 'd' ¸í·É¾î¿Í ¸Å¿ì ºñ½ÁÇÏ´Ù. ¾Õ¿¡ ¼ýÀÚ '1'ÀÌ ºÙÀº °Í¸¸ ´Ù¸£´Ù. '1' ÀÌ ¶óÀÎ ¹øÈ£¸¦ ÀǹÌÇÑ´Ù°í »ý°¢Çß´Ù¸é ¿©·¯ºÐÀÌ ¸Â´Ù. ù ¹ø° ¿¹Á¦¿¡¼­´Â 'd'¸¸ »ç¿ëÇß´Ù. À̹ø¿¡´Â ¾Õ¿¡ ¼ýÀÚ(ÁÖ¼Ò)°¡ ºÙÀº 'd' ¸í·É¾î¸¦ »ç¿ëÇÑ´Ù. ÀÌ ÁÖ¼Ò¸¦ »ç¿ëÇϸé sed¿¡°Ô ƯÁ¤ ¶óÀÎ ¶Ç´Â ¶óÀε鿡¼­¸¸ ÆíÁýÀ» ¼öÇàÇϵµ·Ï ¸í·ÉÇÒ ¼ö ÀÖ´Ù.


ÁÖ¼Ò ¹üÀ§
ÀÌÁ¦ ÁÖ¼Ò ¹üÀ§¸¦ ¼³Á¤ÇÏ´Â ¹æ¹ýÀ» ¼³¸íÇÏ°Ú´Ù. ÀÌ ¿¹Á¦¿¡¼­ sed´Â ¾Æ¿ôDzÀÇ 1¹øºÎÅÍ 10¹ø ¶óÀÎÀ» »èÁ¦ÇÑ´Ù.
$ sed -e '1,10d' /etc/services | more

µÎ °³ÀÇ ÁÖ¼Ò¸¦ ÄÞ¸¶·Î ±¸º°Çϸé sed´Â ù ¹ø° ÁÖ¼ÒºÎÅÍ µÎ ¹ø° ÁÖ¼Ò±îÁö ¸í·É¾î¸¦ Àû¿ëÇÑ´Ù. ÀÌ ¿¹Á¦¿¡¼­ 'd' ¸í·É¾î´Â 1¿¡¼­ 10±îÁöÀÇ ¶óÀο¡ Àû¿ëµÇ¾ú´Ù. ´Ù¸¥ ¶óÀεéÀº ¹«½ÃµÈ´Ù.


Á¤±Ô½ÄÀÌ ÀÖ´Â ÁÖ¼Ò
ÀÌÁ¦ º¸´Ù À¯¿ëÇÑ ¿¹Á¦¸¦ »ý°¢Çغ¸ÀÚ. /etc/services ÆÄÀÏÀÇ ³»¿ëÀ» º¸°í½ÍÁö¸¸, ¿©±â¿¡ »ðÀÔµÈ ÁÖ¼®¿¡´Â º° °ü½ÉÀÌ ¾ø´Ù¸é? ¾Ë´Ù½ÃÇÇ /etc/services ÆÄÀÏ¿¡¼­ ÁÖ¼®À» Ç¥½ÃÇÒ ¶§, '#'¹®ÀÚ¸¦ °¡Áø ¶óÀο¡ ºÙÀδÙ. ÁÖ¼®À» º¸Áö ¾ÊÀ¸·Á¸é sed¿¡°Ô '#'À¸·Î ½ÃÀÛÇÏ´Â ¶óÀÎÀ» »èÁ¦Çϵµ·Ï ÇÑ´Ù.
$ sed -e '/^#/d' /etc/services | more

¾î¶² ÀÏÀÌ ÀϾ´Â°¡? sed°¡ °Å¶áÈ÷ ¿øÇÏ´Â ÀÛ¾÷À» ¼öÇàÇÑ´Ù. ¾î¶»°Ô ÀÌ°ÍÀÌ °¡´ÉÇÑÁö ºÐ¼®Çغ¸ÀÚ.
'/^#/d' ¸í·É¾î¸¦ ÀÌÇØÇÏ·Á¸é Çϳª¾¿ ºÐ¸®Çؼ­ »ý°¢Çغ¸ÀÚ. ¿ì¼± 'd'¸¦ Á¦°ÅÇغ¸ÀÚ. ¶¼¾î³»°í º¸´Ï ''/^#/'°¡ ³²¾ÆÀÖ´Ù. ÀÌ°ÍÀº »õ·Î¿î À¯ÇüÀÇ Á¤±Ô½Ä ÁÖ¼ÒÀÌ´Ù. Á¤±Ô½Ä ÁÖ¼Ò¿¡´Â ¾ðÁ¦³ª ½½·¡½Ã°¡ »ç¿ëµÈ´Ù. À̵éÀº ÆÐÅÏ(pattern)À» ÁöÁ¤ÇÏ°í, Á¤±Ô½Ä ÁÖ¼Ò¸¦ ¹Ù·Î µÚµû¸£´Â ¸í·É¾î°¡ ÀÌ Æ¯Á¤ ÆÐÅÏ°ú ¸ÅÄ¡µÉ °æ¿ì ¶óÀο¡ Àû¿ëµÈ´Ù.
µû¶ó¼­, ''/^#/'´Â Á¤±Ô½ÄÀÌ´Ù. ÇÏÁö¸¸ ÀÌ°ÍÀÌ ¹«½¼ ÀÏÀ» Çϴ°¡? Á¤±Ô½Ä¿¡ ´ëÇØ Á» ´õ ¾Ë¾Æº¸ÀÚ.

Á¤±Ô½Ä
¿ì¸®´Â Á¤±Ô½ÄÀ» »ç¿ëÇÏ¿© ÅؽºÆ®ÀÇ ÆÐÅÏÀ» Ç¥½ÃÇÑ´Ù. ½© ¸í·ÉÇà¿¡¼­ '*' ¹®ÀÚ¸¦ »ç¿ëÇß´Ù¸é °°Àº °ÍÀº ¾Æ´ÏÁö¸¸, Á¤±Ô½Ä°ú ºñ½ÁÇÑ °ÍÀ» »ç¿ëÇß´ø °ÍÀÌ´Ù. ´ÙÀ½Àº Á¤±Ô½Ä¿¡ »ç¿ëÇÒ ¼ö Àִ Ư¼ö ¹®ÀÚÀÌ´Ù.
¹®ÀÚ        ¼³¸í
^        ¶óÀÎÀÇ ½ÃÀÛÀ» ã´Â´Ù.
$        ¶óÀÎÀÇ ³¡À» ã´Â´Ù.
.        ÇÑ °³ÀÇ ¹®ÀÚ¸¦ ã´Â´Ù.
*        ÀÌÀü ¹®ÀÚÀÇ 0 ¶Ç´Â ±× ÀÌ»ó ¹ß»ýÇÑ ¼±Çà ¹®ÀÚ¸¦ ã´Â´Ù.
[ ]        [ ]¾È¿¡ ÀÖ´Â ¸ðµç ¹®ÀÚµéÀ» ã´Â´Ù.
Á¤±Ô½ÄÀ» ÀÌÇØÇÏ·Á¸é ¿¹Á¦¸¸Å­ ÁÁÀº °ÍÀÌ ¾ø´Ù. ÀÌ ¸ðµç ¿¹Á¦µéÀº sed¿¡¼­ Çã¿ëµÈ´Ù. ¸í·É¾î ¿ÞÂÊ¿¡ À¯È¿ ÁÖ¼Ò°¡ ³ªÅ¸³ªµµ·Ï ÇÑ´Ù.

Á¤±Ô½Ä
Ç¥Çö½Ä        ¼³¸í
/./        ÃÖ¼ÒÇÑ ÇÑ °³ ÀÌ»óÀÇ ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â ¶óÀÎÀ» ã´Â´Ù.
/../        ÃÖ¼ÒÇÑ µÎ °³ ÀÌ»óÀÇ ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â ¶óÀÎÀ» ã´Â´Ù.
/^#/        '#'À¸·Î ½ÃÀÛÇÏ´Â ¶óÀÎÀ» ã´Â´Ù.
/^$/        ¸ðµç °ø¹é ¶óÀÎÀ» ã´Â´Ù.
/}^/        '}' (°ø°£ ¾øÀ½)·Î ³¡³ª´Â ¶óÀÎÀ» ã´Â´Ù.
/} *^/        0 ¶Ç´Â ±× ÀÌ»ó °ø°£ÀÌ µÚ¿¡ ºÙ´Â '}' ·Î ³¡³ª´Â ¶óÀÎÀ» ã´Â´Ù.
/[abc]/        ¼Ò¹®ÀÚ 'a', 'b', 'c'¸¦ Æ÷ÇÔÇÏ°í ÀÖ´Â ¶óÀÎÀ» ã´Â´Ù.
/^[abc]/        'a', 'b', 'c'·Î ½ÃÀÛÇÏ´Â ¶óÀÎÀ» ã´Â´Ù.
ÀÌ ¿¹Á¦¸¦ ½ÃµµÇØ º¸±â ¹Ù¶õ´Ù. ½Ã°£À» µé¿© Á¤±Ô½ÄÀ» ÀÍÈ÷±â ¹Ù¶õ´Ù. ±×¸®°í Á¤±Ô½ÄÀ» Á÷Á¢ ¸¸µé¾îº¸¶ó. regexp¸¦ ´ÙÀ½°ú °°ÀÌ »ç¿ëÇÒ ¼ö ÀÖ´Ù.
$ sed -e '/regexp/d' /path/to/my/test/file | more

¿©±â¿¡¼­ sed´Â ¸ÅÄ¡µÈ ¶óÀÎÀ» »èÁ¦ÇÏ°Ô µÉ °ÍÀÌ´Ù. sed¿¡°Ô regexp ¸ÅÄ¡µéÀ» ÇÁ¸°Æ®(print)ÇÏ°í, ¸ÅÄ¡ÇÏÁö ¾Ê´Â °ÍÀ» »èÁ¦Ç϶ó°í ¸í·ÉÇÏ¿© Á¤±Ô½Ä¿¡ Àͼ÷ÇØ Áö´Â °ÍÀÌ ´Ù¸¥ ¾î¶² ¹æ¹ýµé º¸´Ù ½±´Ù.
$ sed -n -e '/regexp/p' /path/to/my/test/file | more

»õ·Î¿î '-n' ¿É¼ÇÀ» ÁÖ¸ñÇ϶ó. ¸íÈ®ÇÑ ¸í·ÉÀÌ ¾ø´Â ÇÑ ÆÐÅÏÀ» ÇÁ¸°Æ®ÇÏÁö ¸» °ÍÀ» sed¿¡°Ô ¸í·ÉÇÑ´Ù. 'd' ¸í·É¾î¸¦ 'p' ¸í·É¾î·Î ´ëüÇß´Ù´Â °ÍÀ» ¾Ë°Ô µÉ °ÍÀÌ´Ù. ÀÌ°ÍÀº ¸íÈ®ÇÏ°Ô sed¿¡°Ô ÆÐÅÏ °ø°£À» ÇÁ¸°Æ®ÇÒ °ÍÀ» ¸í·ÉÇÏ°í ÀÖ´Ù. ´ç¿¬È÷ ¸ÅÄ¡µé¸¸ ÇÁ¸°Æ®µÈ´Ù.

ÁÖ¼Ò
Áö±Ý±îÁö ¶óÀÎ ÁÖ¼Ò, ¶óÀÎ ¹üÀ§ ÁÖ¼Ò, regexp ÁÖ¼Ò¸¦ »ìÆ캸¾Ò´Ù. ÇÏÁö¸¸ ´õ ¸¹Àº °¡´É¼ºÀÌ ÀÖ´Ù. µÎ °³ÀÇ Á¤±Ô½ÄÀ» ÄÞ¸¶·Î ºÐ¸®ÇÏ¿© ÁöÁ¤ÇÒ ¼ö ÀÖ´Ù. sed´Â ù ¹ø° Á¤±Ô½ÄÀ» ã´Â ù ¹ø° ¶óÀκÎÅÍ ½ÃÀÛÇÏ¿©, µÎ ¹ø° Á¤±Ô½ÄÀ» ã´Â ¶óÀÎÀ» Æ÷ÇÔÇÒ ¶§±îÁö ¸ðµç ¶óÀεéÀ» ãÀ» °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, ¾Æ·¡ ¸í·É¾î´Â "BEGIN"À» Æ÷ÇÔÇÏ°í ÀÖ´Â ¶óÀÎÀ¸·Î ½ÃÀÛÇؼ­, "END"¸¦ Æ÷ÇÔÇÏ´Â ¶óÀÎÀ¸·Î ³¡³ª´Â ÅؽºÆ® ºí·ÏÀ» ÇÁ¸°Æ® ÇÒ °ÍÀÌ´Ù.
$ sed -n -e '/BEGIN/,/END/p' /my/test/file | more

"BEGIN"À» ãÁö ¸øÇÏ¸é ¾î¶² µ¥ÀÌÅ͵µ ÇÁ¸°Æ®µÇÁö ¾Ê´Â´Ù. ±×¸®°í "BEGIN"Àº ã¾ÒÁö¸¸, "END"¸¦ ãÁö ¸øÇß´Ù¸é ¸ðµç ¶óÀεéÀº ÇÁ¸°Æ®µÇÁö ¾Ê´Â´Ù. ÀÌ°ÍÀº sed°¡ ½ºÆ®¸² ÁöÇâ ¿¡µðÅÍÀ̱⠶§¹®ÀÌ´Ù.

C ¼Ò½º ¿¹Á¦
C ¼Ò½º ÆÄÀÏ¿¡¼­ main() ÇÔ¼ö¸¸ ÇÁ¸°Æ®ÇÏ·Á¸é ´ÙÀ½À» ÀÔ·ÂÇÑ´Ù.
$ sed -n -e '/main[[:space:]]*(/,/^}/p' sourcefile.c | more

ÀÌ ¸í·É¾î´Â µÎ °³ÀÇ Á¤±Ô½Ä, '/main[[:space:]]*(/' and '/^}/', ÇÑ °³ÀÇ ¸í·É¾î 'p'¸¦ °®°í ÀÖ´Ù. ù ¹ø° Á¤±Ô½ÄÀº "main" °ú ±× µÚ¸¦ µû¸£´Â °ø°£°ú ÅÇ ±×¸®°í ¿­¸° °ýÈ£¸¦ ã´Â´Ù. ÀÌ°ÍÀº ANSI C main() ¼±¾ðÀÇ ½ÃÀÛÀ» ã´Â´Ù.
ÀÌ Á¤±Ô½Ä¿¡¼­ '[[:space:]]' ¹®ÀÚ Å¬·¡½º¸¦ ÁÖ¸ñÇ϶ó. ÀÌ°ÍÀº sed¿¡°Ô ÅÇ ¶Ç´Â °ø°£À» ãµµ·Ï ¸í·ÉÇϴ Ưº°ÇÑ Å°¿öµåÀÌ´Ù. ¿øÇÑ´Ù¸é, '[[:space:]]' ¸¦ ŸÀÌÇÎÇÏ´Â ´ë½Å¿¡ '['¸¦ ŸÀÌÇÎÇÏ°í, ±×·± ´ÙÀ½ ºó °ø°£, Control-V, ÅÇ, ']'¼ø¼­·Î ŸÀÌÇÎÇÑ´Ù.
Control-V ´Â ¸í·É¾î È®ÀåÀ» ¼öÇàÇϱ⠺¸´Ù ½ÇÁ¦ ÅÇÀ» »ðÀÔÇØ¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÁÁ´Ù. ÀÌÁ¦ µÎ ¹ø° regexp·Î ³Ñ¾î°¡ º¸ÀÚ. '/^}'´Â '}' ¹®ÀÚ¸¦ ã´Â´Ù. ÀÌ°ÍÀº »õ·Î¿î ¶óÀÎÀÇ ½ÃÀÛ¿¡ ³ªÅ¸³­´Ù. Äڵ尡 Àß Æ÷¸ËµÇ¾ú´Ù¸é main() ÇÔ¼öÀÇ ´Ý±â °ýÈ£¸¦ ãÀ» °ÍÀÌ´Ù.
'p' ¸í·É¾î´Â ¾ðÁ¦³ª °°Àº ÀÏÀ» ¼öÇàÇÑ´Ù. sed¿¡°Ô ¶óÀÎÀ» ÇÁ¸°Æ®ÇÒ °ÍÀ» ¸í·ÉÇÑ´Ù. ¿ì¸®°¡ '-n' ¸ðµå¿¡ Àֱ⠶§¹®ÀÌ´Ù. C ¼Ò½º ÆÄÀÏ¿¡¼­ ¸í·É¾î¸¦ ½ÇÇàÇ϶ó. ÀÌ°ÍÀº Àüü main() { } ºí·ÏÀ» ¾Æ¿ôDzÇÒ °ÍÀÌ´Ù. ¿©±â¿¡´Â Ãʱâ "main()"°ú ´Ý±â '}'°¡ Æ÷ÇԵȴÙ.

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

 



 
»çÀÌÆ®¸í : ¸ðÁö¸®³× | ´ëÇ¥ : ÀÌ°æÇö | °³ÀÎÄ¿¹Â´ÏƼ : ·©Å°´åÄÄ ¿î¿µÃ¼Á¦(OS) | °æ±âµµ ¼º³²½Ã ºÐ´ç±¸ | ÀüÀÚ¿ìÆí : mojily°ñ¹ðÀÌchonnom.com Copyright ¨Ï www.chonnom.com www.kyunghyun.net www.mojily.net. All rights reserved.