사이트 내 검색:

sed로 파일 변경하기

28 Mar 2014

터미널에서 vim으로 개발을 하고 있다. 십수년 한 것이라서 불편함 없고 오히려 IDE가 불편한데.. 딱 하나 … refactoring 기능이 떨어진다는게 좀 아쉽다. eclipse CDT를 이용하면 변수명이나 클래스명 바꾸는 것을 쉽게할 수 있을 듯 한데…

암튼, throw하는 표현이 좀 바뀌었다. grep 해 보니 총 수백 군데.. 이걸 일일히 수작업으로 바꿀 수는 없고 sed를 이용하여 변경하였다. 파일 1군데서 바꾸면 vi로도 되지만, 파일이 수십 개다보니 sed를 사용해야 겠더라.

변경전 code

throw MyException(param1, param2);

변경되기 원하는 code

throw MyException(new_param1, new_param2, param1, param2);

sed code

$ sed 's/throw[[:space:]][^(]*(/&new_param1, new_param2, /g'

&는 match된 string을 나타낸다. sed에도 capture 기능이 있을 듯 한데 일단 위의 부분만으로도 내 목적을 달성해서 더 찾아보진 않았다.