패치 파일에서 C 주석을 제거하고 수많은 정규식을 조사했지만 패치에서 줄을 제거하면 손상 될 수 있습니다.패치 파일에서 C 주석을 제거하는 방법
diff 패치 파일에서 주석을 검색하고 주석 행을 공백으로 바꾸려면 regex 또는 sed 명령을 어떻게 작성합니까?
이 C 파일을 나오지 정규식 작품을 작동하지만 패치를 나는 다른 무언가가 필요합니다
sed '/^\/\*/,/\*\//d'
예 패치 exerpt은 다음과 같습니다
@@ -382,7 +391,109 @@
return len;
}
+/**********************************************************************************
+ * Some patch
+ * Author: Mcdoomington
+ * Do somethimg
+ *
+ * fix me
+ **********************************************************************************/
누구나 아이디어를 가지고 있습니까?
편집 : 라인을 건너 \로 끝나면 나는를 추가하려면 어떻게
sed -e 's,^+ \*.*,+ \/\/Comment removed,' mypatch.patch > output
+/**********************************************************************************
+ //Comment removed
+ //Comment removed
+ //Comment removed
:
이 필터를 사용하십니까?
편집 :없는 가장 깨끗한 방법이 있지만 솔루션
- 나는 엉터리 정규식에 나오지도 사용됩니다.
참고 두 번째 명령은 약간 욕심이 많을 수 있지만 주석을 살핍니다.
원리 :이 코멘트의 끝인지
는1) 첫 번째 명령 결정하려면/[^ * /]가 /후 {N이면/결정 $, S^+ \ *., +/* 주석이 제거되었지만 ;;} '이 (가) + * 무엇이든 찾아내어 * 주석을 제거했습니다.
2.) 두 번째 명령 이것이/[^ * /] $ /의 끝인지 여부를 확인하려면 /then {N; s,^+ \ *인지 확인하십시오., +/* 주석이 제거되었지만 ;;} '이 (가) + * 무엇이든 찾아내어 * 주석을 제거했습니다.
패치 파일을 수신합니까? 아니면 생성하고 있습니까? 모든 주석은 이동할 것인지 아니면 함수 간의 주석을 그냥 차단합니까? –
패치 파일이 이미 만들어졌으며 주석을 제거하거나 적어도 비워 두는 쉬운 방법을 찾고있었습니다. 새로운 패치를 만드는 것은 스테이징 환경으로 인해 거대한 작업이며 대략 30 + 이상입니다. – mcdoomington
regexes가 단순히 스마트하지 않거나 원하는대로 작업 할 수있는 유연성이없는 지점이 있습니다. 이 경우 중 하나입니다. '/ *','* /','//'토큰을 인식하고 그에 따라 파일을 파싱 할 수 있어야합니다. 개인적으로, 나는이 일을 위해 필자 자신의 필터를 손으로 직접 해킹했다. 몇 시간이 걸리지 않아야합니다. –