배경 및 맥락:

배경 및 맥락:

분기가 하나만 있는 git 개정 제어 프로젝트가 있습니다. 특정 작성자가 특정 파일에 처음으로 도입한 공백으로 구분된 새로운 단어를 모두 제거해야 합니다.

명확히 하자면, 이 시점에서는 이미 HEAD체크아웃되었습니다. 이제 이라는 예제 파일에 introduction.tex문장이 있으면 "Enlargement of the user-base is beneficial ..."적절한 git 명령이 포함된 bash 스크립트가 필요합니다.

  1. 현재 공백으로 구분된 단어를 구문 분석합니다(예제에서는 첫 번째 반복의 경우 Enlargement). 어쩌면 \b[A-za-z+]\b단어 감지를 위해 정규식을 사용하는 것일 수도 있습니다 .
  2. 단어 길이가 5자 이상인지 확인합니다. 그렇지 않은 경우 이 조건이 충족될 때까지 다음 단어로 계속 이동합니다. 만족스러우면 아래 #3으로 이동하세요.
  3. 해당 용어를 소개하는 원래 커밋을 만든 사람이 누구인지 알아보려면 프로젝트의 전체 기록을 확인하세요.
  4. 해당 특정 커밋의 작성자가 일치하면 johndoe고려 중인 단어가 파일에서 제거됩니다.
  5. 파일의 모든 단어가 구문 분석되고 특정 작성자의 원래 단어가 제거될 때까지 #1 - #4를 반복합니다.

자주 발생하는 단어 처리:

와 같은 일반적인 키워드를 무시하는 것이 중요합니다 a, an, the, of, for, if, then, but, else, not, any, or, nor. 따라서 5 characters제거할 수 있는 단어를 만들려면 문자열의 최소 길이를 유지하는 것이 좋습니다.

기본적으로 특정 저자가 작성한 영어와 유사한 기여를 제거하거나 복원하는 것이 아이디어입니다. 이것이 어떻게 달성될 수 있습니까?

Latexdiff 후처리:

이 질문은 작성자의 기여를 제거한 후 차이점 보고서를 생성하기 위한 것입니다. 텍스트를 다듬은 후(즉, 이 질문에 대한 답을 얻은 후) 표준이지만 놀라운 Perl 스크립트를 사용하겠습니다.latexdifflatex이러한 단어 삭제(또는 실제로 두 파일 간의 다른 차이점)를 감지 하고 삭제된 단어를 빨간색 취소선으로 강조 표시하는 복합 PDF를 출력할 수 있습니다. 내가 해야 할 일은 다른 저자가 원래 소개한 단어(예: 내 핵심 문제)를 식별하고 제거하는 것뿐입니다. 따라서 합성 pdf의 모든 문장은 일관성을 유지하고 의미를 잃지 않아야 하며, 삭제된 단어는 계속해서 같은 위치에 있지만 빨간색 취소선 표시만 있습니다.

배경 및 맥락:

이는 학술적인 맥락에서입니다. git 프로젝트는 LaTeX 원고 저장소입니다. 논문의 공동저자와 저자권 분쟁이 있어 해당 논문이 어느 저널에도 투고되지 않았습니다. 우리는 모두 박사과정 학생입니다. 우리의 논문에 사용된 텍스트에 대한 저작권을 주장하기 위해 박사 지도교수는 논문에서 재사용을 허용하고 표절 혐의를 피하기 위해 원고에 소개된 텍스트에 대한 각자의 주장 제출을 요청했습니다. 우리는 둘 다 동일한 저장소에 전념했으며 이제는 내가 정직하게 기여하고 있는 올바른 단어를 표현하는 데 도움이 되는 and git, and , 또는 다른 모든 기능을 활용할 생각입니다. shell귀하의 도움에 크게 감사하겠습니다.git-grepsedawkperl

초기점:

git log -S --oneline 'enlargement' -- introduction.texenlargement이 경우에는 대소문자를 구분하는 단어와 관련된 커밋 목록을 올바르게 표시합니다 . 목록에서 가장 오래된 커밋은 커밋 작성자를 식별하는 데 도움이 됩니다. 우리는 먼저 개념을 설명하는 "큰 기술 단어"를 찾고 있습니다. 저는 start git 명령을 사용하여 수동으로 이 작업을 수행했습니다. 그런데 그런 파일이 10개 정도 있기 때문에 이 작업을 자동으로 수행해야 합니다. 분명히 모든 파일의 5자 이상의 단어마다 수동으로 이 작업을 수행하고 싶지는 않습니다.

관련 정보