【问题标题】:Git diff parse using grep shell command使用 grep shell 命令进行 Git diff 解析
【发布时间】:2014-02-13 14:15:38
【问题描述】:

混帐差异

diff --git a/lids b/lids
index 009d7e8..46447a8 100644
--- a/lids
+++ b/lids
@@ -1,12 +1,12 @@
-FP CA1 CAPS Mapping.pdf
 mtool1428_100squaretool.html
+mtool1428_100squaretool.py
 Lesson Guide 100square 23LessonIdeas.pdf
 Worksheet 100square 0to99.pdf
 Worksheet 100square 1to100.pdf
 Worksheet 100square Blank.pdf
-Worksheet 100square Challenge 1.pdf
-Worksheet 100square Challenge 2.pdf
+Worksheet 100square Challenge 11.pdf
 Worksheet 100square Challenge 3.pdf
+Worksheet 100square Challenge 2.pdf
 Worksheet 100square Challenge 4.pdf
 Worksheet 100square Challenge 5.pdf
 Worksheet 100square Challenge 6.pdf

如何grep删除的以单号开头的字符串和以单+号开头的字符串

【问题讨论】:

  • 不要,不要尝试以这种方式过滤来自diff 的行。 (您是否注意到包含以--- 和+++ 开头的文件名的行?)

标签: git bash shell


【解决方案1】:

如何grep删除的以单号开头的字符串和以单+号开头的字符串

你可以使用这个 egrep:

grep '^ *[-+][a-zA-Z0-9]'

或者这个:

grep '^ *[-+][[:alnum:]]'

或者这个:

grep '^ *[-+][^-+]' 

【讨论】:

  • 是的,我错过了...谢谢 anubhava
  • 你也可以用[^+-] 代替[a-zA-Z0-9] 说“只有一个+或-号”
  • @rabin:我可以知道我在这里的回答有什么问题,您必须删除接受标记吗?
  • 我想接受这两个答案.....所以在接受另一个答案时,你的答案没有被选中,我刚才注意到了......我再次接受了它...感谢指点(吸取的教训..只能接受一个答案:)
  • 是的,只有一个被接受(通常是第一个和正确的一个)。您可以随时为其他答案投票。
【解决方案2】:

以下命令显示每行开头带有“-”或“+”的行,后面没有“-”或“+”

git diff <file> | grep ^[-+][^-+]

【讨论】:

  • 工作得很好...谢谢 Luis
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-28
  • 2012-09-09
  • 2013-11-21
  • 2021-07-28
  • 2016-09-03
  • 2011-12-11
相关资源
最近更新 更多