Count (count)

Count items in a map, list or array

Description

Counts the number of items in a structure, be that a list, map or other object type.

count has several modes ranging from updating values in place, returning new structures, or just outputting totals.

Usage

<stdin> -> count [ --duplications | --unique | --total ] -> <stdout>

Examples

Count number of items in a map, list or array:

» tout json (["a", "b", "c"]) -> count 
3

Flags

Alias for --bytes * -d Alias for --duplications * -r Alias for --runes * -s Alias for --sum * -t Alias for --total * -u Alias for --unique

Detail

If no flags are set, count will default to using --total.

Total: --total / -t

This will read an array, list or map from stdin and output the length for that array.

» a [25-Dec-2020..05-Jan-2021] -> count 
12

This also replaces the older len method.

Please note that this returns the length of the array rather than string. For example out "foobar" -> count would return 1 because an array in the str data type would be new line separated (eg out "foo\nbar" -> count would return 2). If you need to count characters in a string and are running POSIX (eg Linux / BSD / OSX) then it is recommended to use wc instead. But be mindful that wc will also count new line characters.

» out "foobar" -> count
1

» out "foo\nbar" -> count
2

» out "foobar" -> wc: -c
7

» out "foo\nbar" -> wc: -c
8

» printf "foobar" -> wc: -c
6
# (printf does not print a trailing new line)

Duplications: --duplications / -d

This returns a JSON map of items and the number of their occurrences in a list or array.

For example in the quote below, only the word “the” is repeated so that entry will have a value of 2 while ever other entry has a value of 1 because they only appear once in the quote.

» out "the quick brown fox jumped over the lazy dog" -> jsplit \s -> count --duplications
{
    "brown": 1,
    "dog": 1,
    "fox": 1,
    "jumped": 1,
    "lazy": 1,
    "over": 1,
    "quick": 1,
    "the": 2
}

Unique: --unique / -u

Returns the number of unique elements in a list or array.

For example in the quote below, only the word “the” is repeated, thus the unique count should be one less than the total count:

» out "the quick brown fox jumped over the lazy dog" -> jsplit \s -> count --unique
8
» out "the quick brown fox jumped over the lazy dog" -> jsplit \s -> count --total
9

Synonyms

See Also


This document was generated from builtins/core/datatools/count_doc.yaml.

This site's content is rebuilt automatically from murex's source code after each merge to the master branch. Downloadable murex binaries are also built with the website.

Last built on Tue Dec 10 22:56:57 UTC 2024 against commit 60f05a260f05a227caf73dd5b3478e3cb3f4bb24e46745b.

Current version is 6.4.1005 (develop) which has been verified against tests cases.