I am trying to count how many times I use a certain version of a library on my computer.
For some reason,
I then revised the regex slightly (sorry all, I didn't take all the suggestions on board, since one tiny tweak made it work, but I do have to say I learnt a lot by this, including using
uniq -c
is outputing duplicates, despite sorting it, and despite the sort order seeming in order.
Any ideas or feedback?
Thanks for your time.
### With uniq -c
Input:
rg --no-line-number --no-filename -g '*.csproj' "GitVersion.MsBuild" | sed -E '/GitVersion\.MsBuild" Version/!d;s/^\s\+//g;//\1 \2/g' | sort -n | uniq -c
Output:
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
### Without uniq -c
Input:
rg --no-line-number --no-filename -g '*.csproj' "GitVersion.MsBuild" | sed -E '/GitVersion\.MsBuild" Version/!d;s/^\s\+//g;//\1 \2/g' | sort -n
Output:
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
---
I've updated my command to pipe to xxd
as per @kos's suggestion. That helped in comparing.
rg --no-line-number --no-filename -g '*.csproj' "GitVersion.MsBuild" | sed -E '/GitVersion\.MsBuild" Version/!d;s/^\s\+//g;//\1 \2/g' | sort -n | uniq -c | xxd
That yielded (sorry for the screenshot, but it helps having the colors).

xxd
)
I simply added .*
after the >
:
rg --no-line-number --no-filename -g '*.csproj' "GitVersion.MsBuild" | sed -E '/GitVersion\.MsBuild" Version/!d;s/^\s\+//g;/.*$/\1 \2/g' | sort | uniq -c
And it now yields the correct (or satisfactory anyway) output:
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
Thanks team!
Asked by Albert
(171 rep)
May 16, 2024, 03:53 AM
Last activity: May 17, 2024, 01:47 AM
Last activity: May 17, 2024, 01:47 AM