xgrep - °¡³ÇÏ°í °ÔÀ¸¸¥ »ç¶÷µéÀ» À§Çؼ..
¶
¼Ò½ºÄÚµå µð·ºÅ丮¿¡¼ ¹º°¡ ãÀ»¶§ ctags ¸¦ ¾²´Âµ¥
¿øÇÏ´Â°Ô ³ª¿ÀÁö ¾ÊÀ» ¶§°¡ ¸¹½À´Ï´Ù. ±×·¡¼ °á±¹
grep -r À» ¾²°Ô µÇ´Âµ¥, ÀÌ°Ç ½±°Ô ¾²¸é ¹ÙÀ̳ʸ®±îÁö
´Ù °Ë»çÇØ ¹ö¸®ÁÒ. ±×·¡¼ ¸Ó¸® ±¼·Á¼ °£´ÜÇÑ ½ºÅ©¸³Æ®¸¦
¸¸µé¾ú½À´Ï´Ù. ÀÌ°É µ¹¸®±â À§Çؼ´Â
grep, tee, less, wc, vim, cut, find, xargs µîÀÌ
¼³Ä¡µÇ¾î ÀÖ¾î¾ß ÇÕ´Ï´Ù.
»ç¿ë¹ýÀº ´ÙÀ½°ú °°½À´Ï´Ù:
ÇöÀç µð·ºÅ丮¿Í ¼ºê µð·ºÅ丮¿¡¼ ¼Ò½ºÄÚµåÀÏ °Í °°Àº
ÆÄÀϵéÀ» µÚÁ®¼
SetClockFrequency ¶ó´Â ¹®ÀÚ¿À»
ã½À´Ï´Ù.
ãÀº ´ÙÀ½¿¡´Â ÀÌ°ÍÀ» less·Î º¸¿©ÁÖ°í,
less¸¦ ºüÁ® ³ª°¡¸é ´Ù½Ã vim -q ¸í·ÉÀ¸·Î
Çϳª¾¿ ¿¾î¼ º¸¿© ÁÝ´Ï´Ù.
vim ¾È¿¡¼ ´ÙÀ½¿¡ ³ª¿Â
SetClockFrequency¸¦
ã´Â ¸í·ÉÀº :cn À̶ó´Â °ÍÀº ±â¾ï ÇϽôÂÁö?
xgrep +*.h
SetClockFrequency
ÇöÀç/¼ºê µð·ºÅ丮¿¡¼ *.h ¿Í *.c ÆÄÀϵ鸸À» °ñ¶ó¼
SetClockFrequency µé¾î ÀÖ´Â ÁÙÀ» ã½À´Ï´Ù.
±× ÀÌÈÄ´Â À§¿Í °°½À´Ï´Ù.
¸¸¾à! emacs¸¦ ¾²½Ã´Â ºÐÀ̶ó¸é, ¾Æ·¡ ½ºÅ©¸³Æ®¿¡¼
browse=¾î¼±¸Àú¼±¸
¶ó°í µÇ¾î ÀÖ´Â ÁÙÀ» Áö¿ì½Ã¸é emacs ÀÇ grep ¸ðµå¿ë
¸í·ÉÀ¸·Î »ç¿ëÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.
À½ º°°Å ¾Æ´Ñ ÁÙÀº Àúµµ ¾ËÁö¸¸, °©Àڱ⠴©±º°¡ ÀÌ·±°Ô
ÇÊ¿äÇÒ °Í °°Àº ¿¹°¨ÀÌ °©Àڱ⠽ºÃļ Àû¾î ºÃ½À´Ï´Ù.
#!/bin/sh
browse="|tee xgrep.out |less -eR; (wc xgrep.out && vim -q xgrep.out)"
opts=
pats=
root=.
query=
while [ ! -z "" ]; do
case in
+*) newpat=`echo |cut -c2-`; if [ -z "$pats" ]; then pats="-iname $n
ewpat"; else pats="-o -iname $newpat"; fi; ;;
*) query=; shift; break; ;;
esac
shift
done
rest=$*
if [ -z "$pats" ]; then
pats="-iname \*.h -o -iname \*.hpp -o -iname \*.inc -o -iname \*.c -o -iname \
*.cpp -o -iname \*.s -o -iname \*.asm -o -iname \*.java"
fi
cmd="find ${root} ${pats} |xargs grep -n ${opts} '${query}' ${rest} ${browse}";
#echo "Running: $cmd"
eval $cmd
\