2012-03-09 5 views
1

누구든지 다음을 수행 할 수있는 쉘 스크립트를 도와 줄 수 있습니까?.java 파일에서 텍스트 패턴을 찾아 삭제하는 쉘 스크립트

자바 파일에서 catch 블록을 삭제하고 싶습니다. catch 블록을 검색하고 삭제할 수있는 쉘 스크립트가 필요합니다.

나는 다음과 같은 catch 블록이 자바 파일의 수백, 그들은 쉘 스크립트에 의해 삭제해야합니다

} catch (SomeException e) { 
if (Loging.isOn()) { 
    System.out.println("Exception"); 
    // and also some code which differs from file to file. 
} 
+1

* 반드시 쉘 스크립트를 사용해야합니까? 아마도 이것을위한 더 나은 도구가있을 것입니다. –

+0

아니, 내가 자동으로 체크 아웃 - 편집 - 저장 - 체크 인 파일을 가지고 쉘 스크립트를 사용해야합니다 .. 우리는 체크 인 및 체크 아웃 쉘 스크립트가 ... 그냥 파일을 편집하는 스크립트가 필요합니다 ... – amithgc

+0

이 문자열을 삭제해야합니까? 텍스트 편집기에서 찾기/바꾸기를 사용할 수 있습니다. 일부는 편집 플러스와 마찬가지로 여러 파일에서 동시에 찾기/바꾸기를 수행 할 수 있습니다. –

답변

1

내가 Windows에서 생각하고 편리한에는 리눅스 머신이 없습니다. 나는 당신이 리눅스 시스템에 있다고 가정한다. 필요한 것은 리눅스에서 BASH로 사용할 수있는 sed 명령입니다. 나는이 코드를 검증 할 수는 없지만 작성된대로 작동해야한다. 이것은 삭제하고자하는 블록이 "} catch"로 시작하여 "}"로 끝나고 그 블록 안에 다른 오른쪽 중괄호가없는 것으로 가정합니다. 물론이 코드를 실행할 때 올바른 디렉토리에 있어야하므로 CD 명령을 사용하여이 코드를 실행하십시오. "in ..."이 제외되면 루프는 "in $ @"이 주어진 것처럼 실행됩니다.

for i in /directory/*.java 
do 
    # echo 'Working on $i file' 
    copy $i tempfil.txt 
    sed -e '/\} catch/,/^\}/d' tempfil.txt > $i 
done 
+0

고마워요 ... – amithgc

관련 문제