count
count
Count items in a map, list or array
Description
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
--duplicationsOutput a JSON map of items and the number of their occurrences in a list or array--totalRead an array, list or map from STDIN and output the length for that array (default behaviour)--uniquePrint the number of unique elements in a list or array-dAlias for `--duplications-tAlias for `--total-uAlias for `--unique
Detail
Modes
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
lenmethod.
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
countlen
See Also
[[(element): Outputs an element from a nested structure[(index): Outputs an element from an array, map or table[(range) : Outputs a ranged subset of data from STDINa(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-type