From 55b5ff3097da4c98f0eea2d2f28d9a87cd60c51a Mon Sep 17 00:00:00 2001 From: Christian Neukirchen Date: Sun, 14 Feb 2016 16:25:10 +0100 Subject: add manpage and README --- README | 91 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 91 insertions(+) create mode 100644 README (limited to 'README') diff --git a/README b/README new file mode 100644 index 0000000..a3ed8b5 --- /dev/null +++ b/README @@ -0,0 +1,91 @@ +ARR(1) General Commands Manual ARR(1) + +NAME + arr – (re)arrange and select fields on each line + +SYNOPSIS + arr [-0] [-P | -p padding] expr [files ...] + +DESCRIPTION + arr unifies and extends the features of cut(1), paste(1), and provides an + alternative to dicer(5). + + arr will read one line (or zero separated string, when -0 is used) from + each file passed on the command line, and then print the result of + expanding expr. + + By default, reading continues until all files are exhausted. Ended files + continue generating empty strings, or padding when -p is used. When -P + is used, reading stops as soon as one file is exhausted. + +FORMATTING EXPRESSIONS + expr is read as a string containing escape sequences ‘%{...}’ which are + parsed according to the following EBNF: + + ::= (("|" | "*") )* ("&" )? + ::= "~"? ("," )* + ::= "-"? ""+ | ("-"? ""+)? ":" ("-"? ""+)? + + Fields are specified by their position, negative numbers count from the + end. Field ranges are written like n:m where n and m are optional and + default to 1 and -1 respectively. If n is bigger than m, fields are + expanded in reverse order. + + Field ranges are combined using , and an initial ~ negates the whole set + of field selections. + + Selected fields are joined with the last separator, and then split on c + when |c is used. Alternatively, * splits byte-wise. A final &c joins + the selected fields using c again. + + The first set of fields corresponds to the lines read from each file. + +EXIT STATUS + The arr utility exits 0 on success, and >0 if an error occurs. + +EXAMPLES + Print all users from /etc/passwd (read: ‘take line from file 1, split on + :, print field 1.’): + + arr '%{1|:1}' /etc/passwd + + List all basenames of shells used (read ‘take line from file 1, split on + :, take last field, split on /, take last field.’): + + arr '%{1|:-1|/-1}' /etc/passwd | sort -u + + Remove the TLD from a list of domains: + + arr '%{1|.~-1}' + + Generate PTR addresses for a list of IPv4s: + + arr '%{1|.-1:1}.in-addr.arpa' + + Only print the first 80 chars of each line: + + arr '%{1*:80}' + + Double space text: + + arr '%{1*:& }' + + Format a phone number: + + echo 8005551212 | arr '(%{1*1:3})%{1*4:6}-%{1*7:}' + +SEE ALSO + cut(1), paste(1), dicer(5) + +AUTHORS + Christian Neukirchen + +LICENSE + arr is in the public domain. + + To the extent possible under law, the creator of this work has waived all + copyright and related or neighboring rights to this work. + + http://creativecommons.org/publicdomain/zero/1.0/ + +Linux 4.3.4_1 February 14, 2016 Linux 4.3.4_1 -- cgit 1.4.1