aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/cli
diff options
context:
space:
mode:
Diffstat (limited to 'src/cli')
-rw-r--r--src/cli/README.md2
-rw-r--r--src/cli/cut.md41
-rw-r--r--src/cli/rev.md18
-rw-r--r--src/cli/tac.md10
4 files changed, 66 insertions, 5 deletions
diff --git a/src/cli/README.md b/src/cli/README.md
index 5eac7cb..c20edc3 100644
--- a/src/cli/README.md
+++ b/src/cli/README.md
@@ -1,9 +1,11 @@
# CLI foo
- [awk](./awk.md)
+- [cut](./cut.md)
- [sed](./sed.md)
- [column](./column.md)
- [sort](./sort.md)
- [tr](./tr.md)
- [tac](./tac.md)
+- [rev](./rev.md)
- [paste](./paste.md)
diff --git a/src/cli/cut.md b/src/cli/cut.md
new file mode 100644
index 0000000..aa7f7f0
--- /dev/null
+++ b/src/cli/cut.md
@@ -0,0 +1,41 @@
+# cut(1)
+
+```sh
+# Remove sections from each line of files(s).
+cut OPT FILE [FILE]
+ -d DELIM delimiter to tokenize
+ -f LIST field selector
+ -c LIST character selector
+```
+
+## Example: only selected characters
+
+```sh
+echo 'aa bb cc dd' | cut -c "1-4"
+# aa b
+
+# Inverted selection.
+echo 'aa bb cc dd' | cut --complement -c "1-4"
+# b cc dd
+```
+
+## Example: only selected fields
+Fields in `cut` are indexed starting from `1` rather than `0`.
+```sh
+# Fields 2 until 3.
+echo 'aa bb cc dd' | cut -d ' ' -f 2-3
+# bb cc
+
+# First field until the 2nd.
+echo 'aa bb cc dd' | cut -d ' ' -f -2
+# aa bb
+
+# Third field until the end.
+echo 'aa bb cc dd' | cut -d ' ' -f 3-
+# cc dd
+
+# If the number of tokens in a line is unkown but we want to remove the last 2
+# tokens we can use rev(1).
+echo 'aa bb cc dd' | rev | cut -d ' ' -f3- | rev
+# aa bb
+```
diff --git a/src/cli/rev.md b/src/cli/rev.md
new file mode 100644
index 0000000..c00d517
--- /dev/null
+++ b/src/cli/rev.md
@@ -0,0 +1,18 @@
+# rev(1)
+
+```sh
+# Reverse each line of file(s), character by character.
+rev FILE [FILE]
+
+echo -e '123\nabc' | rev
+# 321
+# cba
+```
+
+## Example: remove the last 2 tokens with unknown length
+```sh
+# If the number of tokens in a line is unkown but we want to remove the last 2
+# tokens we can use rev(1).
+echo 'aa bb cc dd' | rev | cut -d ' ' -f3- | rev
+# aa bb
+```
diff --git a/src/cli/tac.md b/src/cli/tac.md
index eba42ba..56ab92c 100644
--- a/src/cli/tac.md
+++ b/src/cli/tac.md
@@ -4,9 +4,9 @@
# Reverse output lines of file(s) and concatenate (reverse of cat).
tac FILE [FILE]
-echo -e 'aa\nbb\ncc\ndd' | tac
-# dd
-# cc
-# bb
-# aa
+echo -e 'a1\nb2\nc3\nd4' | tac
+# d4
+# c3
+# b2
+# a1
```