我们有一个受 git 修订控制的项目,只有一个分支。我们需要删除特定作者在给定文件中首次引入的每个新的空格分隔单词。
澄清一下,此时我们已经HEAD
签出。现在,在名为 的示例文件中introduction.tex
,如果有一个句子"Enlargement of the user-base is beneficial ..."
,我想要一个带有合适 git 命令的 bash 脚本:
- 解析当前以空格分隔的单词(在示例中,对于第一次迭代,这将是
Enlargement
)。也许通过使用正则表达式\b[A-za-z+]\b
来进行单词检测。 - 检查单词长度是否至少为 5 个字符。如果不是,则继续移动到下一个单词,直到满足此条件为止。如果满意,请转到下面的#3。
- 检查项目的整个历史记录,找出最初提交引入该词的人。
- 如果该特定提交的作者匹配
johndoe
,则从文件中删除正在考虑的单词。 - 重复#1 - #4,直到文件中的所有单词都被解析并且特定作者的原始单词被删除。
高频出现词的处理:
忽略诸如 之类的常见关键字很重要a, an, the, of, for, if, then, but, else, not, any, or, nor
。因此,我建议保留5 characters
字符串中的最小长度,以使单词有资格删除
基本上,这个想法是消除或恢复特定作者所做的类似英语的贡献。如何才能做到这一点?
Latexdiff 后处理:
这个问题是为了在删除作者的贡献后生成一份差异报告。修剪文本后(即在我得到这个问题的答案后),我打算使用一个标准的、但令人惊叹的 perl 脚本latexdiff
它可以检测这些单词删除(或者实际上两个latex
文件之间的任何其他差异)并输出复合 PDF,用红色删除线突出显示删除的单词。我需要做的就是识别并删除其他作者最初引入的单词(即我的核心问题)。因此,复合 pdf 中的所有句子应保持连贯,不丧失意义,但将继续保留已删除的单词,但仍保留在同一位置,但在其上仅带有红色删除线标记。
背景和背景:
这是在学术背景下。 git 项目是手稿的 LaTeX 存储库。我与一篇论文的合著者存在作者权争议,因此该论文没有提交给任何期刊。我们都是博士生。为了声明我们各自论文中使用的文字的版权,我们的博士导师要求提交我们各自对稿件中引入的文字的声明,以便在我们的论文中重复使用,并避免抄袭指控。我们都承诺了同一个回购协议,现在我正在考虑利用 和 的力量git
,以及shell
、、或其他任何东西来帮助我声明我诚实地贡献的正确话语。我们将非常感谢您的帮助。git-grep
sed
awk
perl
初始点:
git log -S --oneline 'enlargement' -- introduction.tex
正确显示涉及该区分大小写的单词的提交列表,即enlargement
在本例中。列表中最旧的提交应有助于识别提交作者。我们只是在寻找首先解释概念的“大的、技术性的词汇”。我已经使用启动 git 命令手动执行此操作。但我需要自动执行此操作,因为大约有 10 个这样的文件。我显然不想为每个文件中的每个 5 个以上字符的单词手动执行此操作。