我尝试使用Git在Windows上提供的工具使用正则表达式提取一些文本。具体来说,我试图提取部分AssemblyVersion并将其放在钩子脚本中的变量中。即我在AssemblyInfo.cs文件中有以下内容:
[assembly: AssemblyVersion( "1.1.1.0" )]
我想提取" 1.1.1"。我有一个正则表达式,但我无法获得Git提供的任何工具。
awk match :我尝试使用awk(gawk)和三个参数版本的匹配,在那里它用捕获的组填充数组。显然,在git提供的版本中,没有支持3个参数的匹配版本。
grep -o :我试过grep -o,我认为应该打印出捕获的组,但是带git的版本没有-o选项。
所以,有两个问题: 1.有没有办法从正则表达式中捕获一些文本并将其放入钩子脚本中的变量(在Windows上时)? 2.有没有地方可以找出git在Windows上提供的GNU工具版本的可能性?
答案 0 :(得分:1)
你可以使用awk。
$ echo '[assembly: AssemblyVersion( "1.1.1.0" )]' | awk -F'"' '{print $2}'
1.1.1.0
$ echo '[assembly: AssemblyVersion( "1.1.1.0" )]' | awk -F'"' '/AssemblyVersion/{print $2}'
1.1.1.0
$ echo '[assembly: AssemblyVersion( "1.1.1.0" )]' | awk -F'"' '/AssemblyVersion/{split($2,a,".");print a[1]"."a[2]"."a[3]}'
1.1.1