count
Count items in a map, list or array
<stdin> -> count [ --duplications | --unique | --total ] -> <stdout>
Count number of items in a map, list or array:
» tout json (["a", "b", "c"]) -> count
3
--duplications
Output a JSON map of items and the number of their occurrences in a list or array--sum
Read an array, list or map from stdin and output the sum of all the values (ignore non-numeric values)--sum-strict
Read an array, list or map from stdin and output the sum of all the values (error on non-numeric values)--total
Read an array, list or map from stdin and output the length for that array (default behaviour)--unique
Print the number of unique elements in a list or array-d
Alias for --duplications
-s
Alias for --sum
-t
Alias for --total
-u
Alias for --unique
If no flags are set, count
will default to using --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
/ -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
/ -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
count
len
[ ..Range ]
: Outputs a ranged subset of data from stdin[ Index ]
: Outputs an element from an array, map or table[[ Element ]]
: Outputs an element from a nested structurea
(mkarray): A sophisticated yet simple way to build an array or listappend
: Add data to the end of an arrayja
(mkarray): A sophisticated yet simply way to build a JSON arrayjsplit
: Splits stdin into a JSON array based on a regex parameterjsplit
: Splits stdin into a JSON array based on a regex parametermap
: Creates a map from two data sourcesmsort
: Sorts an array - data type agnosticmtac
: Reverse the order of an arrayprepend
: Add data to the start of an arrayta
(mkarray): A sophisticated yet simple way to build an array of a user defined data-typetout
: Print a string to the stdout and set it’s data-typeThis 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 Thu Aug 15 14:38:34 UTC 2024 against commit 50ed9d650ed9d6df391240d3c2c02e623636e508dfcdad1.
Current version is 6.2.4000 which has been verified against tests cases.