i.e. //*(): etc
삭제하려는 폴더의 여러 파일에는 아래와 같이 특수 문자( )가 포함된 여러 줄의 텍스트가 포함되어 있습니다. 을 사용하여 sed
모든 다른 솔루션을 시도했지만 awk
아무도 좋아하지 않는 것 같습니다 //
.
// Some text with (something else) and a clack 6*5.
// Rest on the next line with some more
// etc. http://website.com/helloworld.php
// and just another line.
나에게 필요한 것은 폴더의 모든 파일에서 이 텍스트를 검색하고 삭제하는 것뿐입니다 data
.
답변1
//
다음을 사용하여 시퀀스를 처리하는 방법에는 여러 가지가 있습니다.sed
백슬래시는 각
/
인스턴스를 이스케이프 처리합니다.sed '/^\/\//d' file
캐릭터
/
목록 에 넣어보세요[...]
sed '/^[/]\{2\}/d' file
또는 (GNU sed 사용)
sed -r /^[/]{2}/d' file
//
시퀀스가 문자 그대로 처리 되도록 정규식 구분 기호를 다른 문자로 변경합니다.sed '\%^//%d' file
답변2
3가지 방법을 소개합니다.
GCC 사용
gcc
C/C++ 파일에서 주석을 제거하기 위한 전처리 기로 사용할 수 있습니다 .예
$ cat test.c #define foo bar foo foo foo #ifdef foo #undef foo #define foo baz #endif foo foo // Some text with (something else) and a clack 6*5. // Rest on the next line with some more // etc. http://website.com/helloworld.php // and just another line.
댓글을 삭제하려면:
$ gcc -fpreprocessed -dD -E test.c # 1 "test.c" #define foo bar foo foo foo #ifdef foo #undef foo #define foo baz #endif foo foo
find . -iname "*.c"
모든 파일을 찾고 위의 파일을 실행하는 데 사용하도록 조정할 수 있습니다.c
. 이는 한 가지 방법이 될 것입니다.사용
stripcmt
라는 도구가 있습니다.밴드(즉, 댓글 삭제) 원하는 대로 무엇이든 할 수 있습니다.
펄 사용하기
또한 이 Perl CPAN 모듈을 사용하여 사용자 정의 스크립트를 통해 주석을 제거할 수도 있습니다. CPAN 모듈은 다음과 같이 호출됩니다.정규식::일반::주석. CPAN 페이지에 이를 수행하는 방법에 대한 예가 있습니다.
답변3
다음을 사용할 수도 있습니다 grep
.
grep -v // file
인쇄된 -v
라인이 주어진 패턴과 일치하지 않습니다.
또는 perl
:
perl -ne 'print unless m#^//#;' file
또는
perl -ne 'next if m#^//#; print' file