我试图计算我在计算机上使用某个版本的库的次数。
由于某种原因,uniq -c
尽管对其进行了排序,并且尽管排序顺序似乎按顺序排列,但仍输出重复项。
有什么想法或反馈吗?
谢谢你的时间。
和uniq -c
输入:
rg --no-line-number --no-filename -g '*.csproj' "GitVersion.MsBuild" | sed -E '/GitVersion\.MsBuild" Version/!d;s/^\s\+//g;/<!/d;s/^.+(GitVersion.MsBuild)" Version="(.+)">/\1 \2/g' | sort -n | uniq -c
输出:
3 GitVersion.MsBuild 5.10.1
1 GitVersion.MsBuild 5.10.1
3 GitVersion.MsBuild 5.10.3
11 GitVersion.MsBuild 5.11.1
5 GitVersion.MsBuild 5.11.1
25 GitVersion.MsBuild 5.12.0
2 GitVersion.MsBuild 5.12.0
1 GitVersion.MsBuild 5.6.11
2 GitVersion.MsBuild 5.7.0
4 GitVersion.MsBuild 5.8.1
没有uniq -c
输入:
rg --no-line-number --no-filename -g '*.csproj' "GitVersion.MsBuild" | sed -E '/GitVersion\.MsBuild" Version/!d;s/^\s\+//g;/<!/d;s/^.+(GitVersion.MsBuild)" Version="(.+)">/\1 \2/g' | sort -n
输出:
GitVersion.MsBuild 5.10.1
GitVersion.MsBuild 5.10.1
GitVersion.MsBuild 5.10.1
GitVersion.MsBuild 5.10.1
GitVersion.MsBuild 5.10.3
GitVersion.MsBuild 5.10.3
GitVersion.MsBuild 5.10.3
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.11.1
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.12.0
GitVersion.MsBuild 5.6.11
GitVersion.MsBuild 5.7.0
GitVersion.MsBuild 5.7.0
GitVersion.MsBuild 5.8.1
GitVersion.MsBuild 5.8.1
GitVersion.MsBuild 5.8.1
GitVersion.MsBuild 5.8.1
我已经xxd
按照 @kos 的建议更新了我的命令以进行管道传输。这有助于比较。
rg --no-line-number --no-filename -g '*.csproj' "GitVersion.MsBuild" | sed -E '/GitVersion\.MsBuild" Version/!d;s/^\s\+//g;/<!/d;s/^.+(GitVersion.MsBuild)" Version="([0-9\.]+)">/\1 \2/g' | sort -n | uniq -c | xxd
然后我稍微修改了正则表达式(抱歉,我没有采纳所有建议,因为一个微小的调整使它起作用,但我不得不说我从中学到了很多东西,包括使用xxd
)
我只是.*
在之后添加>
:
rg --no-line-number --no-filename -g '*.csproj' "GitVersion.MsBuild" | sed -E '/GitVersion\.MsBuild" Version/!d;s/^\s\+//g;/<!/d;s/^.+(GitVersion.MsBuild)" Version="([0-9\.]+)">.*$/\1 \2/g' | sort | uniq -c
现在它产生了正确的(或者无论如何令人满意的)输出:
4 GitVersion.MsBuild 5.10.1
3 GitVersion.MsBuild 5.10.3
16 GitVersion.MsBuild 5.11.1
27 GitVersion.MsBuild 5.12.0
1 GitVersion.MsBuild 5.6.11
2 GitVersion.MsBuild 5.7.0
4 GitVersion.MsBuild 5.8.1
感谢团队!