grepããçµæãsed(æ£è¦è¡¨ç¾ç½®æ)ãããã£ãã¨ãã«Macã ã¨ããã£ã話
ã ãããåºæ¬çã«Linuxåæã§æ¸ããã¦ãã
ã°ã°ã£ã¦ããã¿ã¤ããã®ã¯ä»¥ä¸ã®ã¯ã³ã©ã¤ãã¼
grep -r hoge * | xargs sed -i "s/hoge/hufa/g"
ããã£ã¦ã話ããã¾ãèããªãéãã¯ããã¶ãããã§åºæ¬çã«ã§ãããã ããã
Macã ã¨sedãããã
ããããMacã®sedã¯BSDçµç±ã®sedãããã¦ãGNUçã®sedã¨ã¯éãããããã ãã -i ãªãã·ã§ã³ãã¤ãããªãã£ããã¨ãããã¨ã§brewã§gnu-sedããããportçãã¡ããã¨ããããã
brew install gnu-sed
ã³ãã³ã㯠gesd ã«ãªãããã¨ã¯gnu-sedãªã®ã§ãã¤ãã©ãããªsedã使ãããã¨æã
ããããã¸ã§ã¯ã以ä¸ã®æååã䏿¬å¤æãããã£ã
grep -rl hoge ./ | xargs gsed -e -i "s/hoge/hufa/g"
ã§ãããï¼ï¼ï¼ï¼
@xxxxxxx ++
@yyyyyyy ++
@zzzzzzz ++
@hhhhhhhh ++
è£è¶³ã¨ã
ããã¾ãã¡ããã¨çè§£ãã¦ãªããã©å種ãªãã·ã§ã³ã«ã¤ãã¦ã
grepã¯ãã¡ã¤ã«ããæååãæ£è¦è¡¨ç¾ã§åãåºãã³ãã³ãããã¤ãã®ã¢ã¬ã§ããã -r ã§å帰çã«èªãã®ã§ãã£ã¬ã¯ããªä»¥ä¸ãæä½ã§ããã-l ã¯ããããããã¡ã¤ã«ã®ã¿è¡¨ç¤º
xargs ã¯ãã¤ãã§ãªãã¤ã¬ã¯ãããã¨ãã«æ¨æºåºåãã²ã¨ã¤ã«ã¾ã¨ãããã¤ãã§ããã®ããªï¼ã²ã¨ã¤ã²ã¨ã¤èªã¿è¾¼ããã䏿°ã«ã¾ã¨ãã¦èªã¿è¾¼ãã®ã§ããã©ã¼ãã³ã¹ãããããããã
gsedã¯GNUçã®sedã -i ã§æååã®ç½®æã -e ã§å¤æå
容ã®è¡¨ç¤ºãæ¨æºåºåã«åºåãã¦ãããããã¨ã¯æ£è¦è¡¨ç¾ã§ç½®æã
ã¾ããç´ ç´ã«Linuxã§GNUçãã¤ããããMacã¯ä¸è¨ã®éæ³ã使ãã£ã¦è¦ãã¡ãããï¼ï¼ï¼ï¼æ
å¼±ä¹ï¼ï¼ï¼ï¼
ãããã£ãè£è¶³
grep -rl hoge ./
ããã ã¨å ¨é¨ã®ãã¡ã¤ã«ã対象ã«ãªãã®ã¯ãããã©ãgitãmercurialã使ã£ã¦ããå ´åã¯ãã£ã¡ã®å±¥æ´ã¾ã§ããã®ã¼ã£ã¦ãã¾ããããããªãããªã®ã§ãå³å¯ã«ã¯
find . -name "*.py" | grep hoge * | xargs gsed -e -i "s/hoge/huga/g"
ãããªæãã§findã§æ¡å¼µåãæå®ããã»ãããããããããªããæªæ¤è¨¼ã ãã©ã