저는 C++ 사용자이고 을 사용하는 코드를 사용하여 STL 벡터를 확인합니다. 이제 표준 []
으로 변경하고 싶습니다. 누구든지이 일을 할 수있는 스크립트를 알고 있습니까? 수퍼 일반 스크립트 일 필요는 없습니다. 대부분의 경우는 .at(i)
또는 아마도 .at(a*i+j)
입니다.하지만 너무 많은 수작업으로 처리해야합니다.내 코드 전체에서 .at()를 []로 바꿉니다.
답변
사용이 펄 연산자 :
가s/\.at\(([^)]+)\)/[$1]/g
펄의 s///
연산자는 "대체"(찾기/바꾸기)입니다. //의 첫 번째 세트에서 일치시킬 정규 표현식을 지정합니다. 두 번째 //는 해당 경기를 대체하거나 대체 할 텍스트입니다.
이 경우 ".at (아무거나 가까운 괄호)"의 인스턴스를 찾고 "[그 뉘앙스]"로 바꿉니다. 한 - 라이너로
,
perl -pe's/\.at\(([^)]+)\)/[$1]/g' in.cpp > out.cpp
당신은 비주얼 스튜디오은 찾기에서 이렇게 사용하는 경우/프롬프트 교체 : \[\1\]
\.at\({[^)]+}\)
가 교체 :
은 무엇 찾기
정규 표현식을 사용하도록 설정하면 좋은 결과를 얻을 수 있습니다.
s ///를 사용하는 방법을 추가 했어도 괜찮습니까? – ikegami
아니, 고마워. 대답을 개선하는 것은 결코 문제가되지 않습니다. – kevlar1818
sed -i 's,\.at(\([^\)]*\)),[\1],g' *.h *.cpp
은 대부분의 간단한 표현식에서 작동해야합니다. 그러나 at()에 매개 변수 안의 괄호를 사용하면 작동하지 않습니다.
grep 'at(.*).*)' *.h *.cpp
이러한 경우를 식별하고 실행이 나오지 스크립트 말했다
전에 변환 할 수 있습니다. P. sed가 여기와 같은 위치에서 작동하도록하려면 백업을 주변에 두십시오 (예 : VCS를 통해).
편집 : 게시하기 전에 sed 스크립트를 테스트해야합니다. 지금 수정되어 테스트되었습니다.
sed -e 's/\.at(\([^)]*\))/\[\1]/g
- 1. http_build_query하지만 &로 바꿉니다. PHP로?
- 2. System.Data.OracleClient를 Oracle.DataAccess (ODP.NET)로 바꿉니다.
- 3. 모든 "\ n"을 ","로 바꿉니다.
- 4. 내 앱 전체에서 SystemSoundID 사용?
- 5. 문자열의 일부를 x의 C++로 바꿉니다
- 6. SVN 저장소 전체에서 코드 사용 추적하기
- 7. 내 앱 전체에서 CLLocation을 어떻게 공유합니까?
- 8. Javascript replace 메서드는 "$ 1"로 바꿉니다.
- 9. 파일 세트를 001, 002, ...로 바꿉니다.
- 10. jQuery를 사용하여 각 '을 & apos;로 바꿉니다.
- 11. 주소 표시 줄의 URL을 document.body.innerHTML.replace()로 바꿉니다.
- 12. Django/Python 편집기 전체에서
- 13. 메모장 ++ : 단어를 표시 한 다음 모든 단어를 [단어]로 바꿉니다.
- 14. 문자열의 마지막 쉼표를 "and"로 바꿉니다. (목표 - C)
- 15. jQuery-ajax 디버그 내 코드 내 코드 !?
- 16. Application Server 클러스터 노드 전체에서 Java 코드 호출
- 17. Django 관리 사이트의 URL이 내 언어와 일치하도록 이름을 바꿉니다.
- 18. 도메인 전체에서 검색 중입니까?
- 19. 앱 전체에서 개체 공유
- 20. 앱 전체에서 테스트 데이터 지속하기
- 21. 프로 시저 전체에서 커서 사용
- 22. 다른 사용자 (C#)로 코드 실행
- 23. Java 바이트 코드 (jar)로 문자열 수정
- 24. 뷰 전체에서 UIToolbar 버튼 유지
- 25. LINQ (컬렉션 내의 컬렉션)로 코드 단순화
- 26. 클래스 전체에서 TraceSource를 사용하는 방법
- 27. Visual Studio 2010에서 파일을 잘못된 인코딩으로 바꿉니다.
- 28. 로 json_encode 및 MySQL의 유니 코드 문제
- 29. HTML 코드 ("& something;")로 번역하는 방법
- 30. QString을 LPCSTR (유니 코드)로 변환하는 방법
's, \. at (i \), \ [i \], g'의 문제점은 무엇입니까? –
이것은 하나의 변수 이름으로 만 작동합니다. 그는 아마도 역 참조를 사용하는 무언가를 원할 것입니다. –
왜 이것을하고 싶습니까? 성능 개선을 위해 변환 전과 후에 차이점을 확인하십시오. 차이가 20 % 미만이면 변경 사항을 되돌릴 것을 권장합니다. –