|
|
- 9. a miscellany of tools and techniques
- =======================================
-
- dict
- ----
-
- Want to know the definition of a word, or find useful synonyms?
-
- $ dict concatenate | head -10
- 4 definitions found
-
- From The Collaborative International Dictionary of English v.0.48 [gcide]:
-
- Concatenate \Con*cat"e*nate\ (k[o^]n*k[a^]t"[-e]*n[=a]t), v. t.
- [imp. & p. p. {Concatenated}; p. pr. & vb. n.
- {Concatenating}.] [L. concatenatus, p. p. of concatenare to
- concatenate. See {Catenate}.]
- To link together; to unite in a series or chain, as things
- depending on one another.
-
- aspell
- ------
-
- Need to interactively spell-check your presentation notes?
-
- $ aspell check presentation
-
- Just want a list of potentially-misspelled words in a given file?
-
- <!-- exec -->
-
- $ aspell list < ../literary_environment/index.md | sort | uniq -ci | sort -nr | head -5
- 40 td
- 24 Veselka
- 17 Reuel
- 16 Brunner
- 15 Tiptree
-
- <!-- end -->
-
- mostcommon
- ----------
-
- Something like that last sequence sure does seem to show up a lot in my work:
- Spit out the _n_ most common lines in the input, one way or another. Here's
- a little script to be less repetitive about it.
-
- <!-- exec -->
-
- $ aspell list < ../literary_environment/index.md | ./mostcommon -i -n5
- 40 td
- 24 Veselka
- 17 Reuel
- 16 Brunner
- 15 Tiptree
-
- <!-- end -->
-
- This turns out to be pretty simple:
-
- <!-- exec -->
-
- $ cat ./mostcommon
- #!/usr/bin/env bash
-
- # Optionally specify number of lines to show, defaulting to 10:
- TOSHOW=10
- CASEOPT=""
-
- while getopts ":in:" opt; do
- case $opt in
- i)
- CASEOPT="-i"
- ;;
- n)
- TOSHOW=$OPTARG
- ;;
- \?)
- echo "Invalid option: -$OPTARG" >&2
- exit 1
- ;;
- :)
- echo "Option -$OPTARG requires an argument." >&2
- exit 1
- ;;
- esac
- done
-
- # sort and then uniqify STDIN,
- # sort numerically on the first field,
- # chop off everything but $TOSHOW lines of input
-
- sort < /dev/stdin | uniq -c $CASEOPT | sort -k1 -nr | head -$TOSHOW
-
- <!-- end -->
-
- Notice, though, that it doesn't handle opening files directly. If you wanted
- to find the most common lines in a file with it, you'd have to say something
- like `mostcommon < filename` in order to redirect the file to `mostcommon`'s
- input.
-
- Also notice that most of the script is boilerplate for handling a couple of
- options. The work is all done in a oneliner. Worth it? Maybe not, but an
- interesting exercise.
-
- cal and ncal
- ------------
-
- Want to know what the calendar looks like for this month?
-
- $ cal
- April 2014
- Su Mo Tu We Th Fr Sa
- 1 2 3 4 5
- 6 7 8 9 10 11 12
- 13 14 15 16 17 18 19
- 20 21 22 23 24 25 26
- 27 28 29 30
-
- How about for September, 1950, in a more compact format?
-
- <!-- exec -->
-
- $ ncal -m9 1950
- September 1950
- Su 3 10 17 24
- Mo 4 11 18 25
- Tu 5 12 19 26
- We 6 13 20 27
- Th 7 14 21 28
- Fr 1 8 15 22 29
- Sa 2 9 16 23 30
-
- <!-- end -->
-
- Need to know the date of Easter this year?
-
- <!-- exec -->
-
- $ ncal -e
- April 20 2014
-
- <!-- end -->
-
- seq
- ---
-
- Need the numbers 1-5?
-
- <!-- exec -->
-
- $ seq 1 5
- 1
- 2
- 3
- 4
- 5
-
- <!-- end -->
-
- shuf
- ----
-
- Want to shuffle some lines?
-
- <!-- exec -->
-
- $ seq 1 5 | shuf
- 2
- 1
- 4
- 3
- 5
-
- <!-- end -->
-
- ptx
- ---
-
- Want to make a [permuted index][kwic] of some phrase?
-
- <!-- exec -->
-
- $ echo 'i like american music' | ptx
- i like american music
- i like american music
- i like american music
- i like american music
-
- <!-- end -->
-
-
-
- figlet
- ------
-
- Need to make ASCII art of some giant letters?
-
- <!-- exec -->
-
- $ figlet "R T F M"
- ____ _____ _____ __ __
- | _ \ |_ _| | ___| | \/ |
- | |_) | | | | |_ | |\/| |
- | _ < | | | _| | | | |
- |_| \_\ |_| |_| |_| |_|
-
-
- <!-- end -->
-
- cowsay
- ------
-
- How about ASCII art of a <del>cow</del> dragon saying something?
-
- <!-- exec -->
-
- $ cowsay -f dragon "RTFM, man"
- ___________
- < RTFM, man >
- -----------
- \ / \ //\
- \ |\___/| / \// \\
- /0 0 \__ / // | \ \
- / / \/_/ // | \ \
- @_^_@'/ \/_ // | \ \
- //_^_/ \/_ // | \ \
- ( //) | \/// | \ \
- ( / /) _|_ / ) // | \ _\
- ( // /) '/,_ _ _/ ( ; -. | _ _\.-~ .-~~~^-.
- (( / / )) ,-{ _ `-.|.-~-. .~ `.
- (( // / )) '/\ / ~-. _ .-~ .-~^-. \
- (( /// )) `. { } / \ \
- (( / )) .----~-.\ \-' .~ \ `. \^-.
- ///.----..> \ _ -~ `. ^-` ^-_
- ///-._ _ _ _ _ _ _}^ - - - - ~ ~-- ,.-~
- /.-~
-
- <!-- end -->
|