如何使用 Git 提供的工具从行中提取文本(在 windows 上)

How to extract text from line with tools provided by Git (on windows)

我正在尝试使用 Git 在 windows 上提供的工具使用正则表达式提取一些文本。具体来说,我试图提取 AssemblyVersion 的一部分并将其放置在挂钩脚本中的变量中。 IE。我的 AssemblyInfo.cs 文件中有以下内容:

[assembly: AssemblyVersion( "1.1.1.0" )]

我想提取“1.1.1”。我有一个正则表达式可以做到这一点,但我无法使用 Git 提供的任何工具。

awk match:我尝试使用 awk (gawk) 和具有三个参数版本的 match,它用捕获的组填充数组。显然在git提供的版本中,没有支持3个参数的匹配版本。

grep -o:我尝试了 grep -o,我认为它应该打印出捕获的组,但是带有 git 的版本没有 - o 选项。

那么,两个问题: 1. 有什么方法可以从正则表达式中捕获一些文本并将其放入挂钩脚本中的变量中(在 windows 上)? 2. 有没有什么地方可以弄清楚 windows 上的 git 提供的 GNU 工具版本的可能性?

你可以使用 awk。

$ echo '[assembly: AssemblyVersion( "1.1.1.0" )]' | awk -F'"' '{print }'
1.1.1.0
$ echo '[assembly: AssemblyVersion( "1.1.1.0" )]' | awk -F'"' '/AssemblyVersion/{print }'
1.1.1.0
$ echo '[assembly: AssemblyVersion( "1.1.1.0" )]' | awk -F'"' '/AssemblyVersion/{split(,a,".");print a[1]"."a[2]"."a[3]}'
1.1.1