learnbyexample
Learn Python, Regex, Linux, Scripting, Vim, Ebooks, Self-Publishing and Interesting Tech Nuggets.
- Posts
- 171 from 6 Mar 2019 to 21 Nov 2025
- Posting
- now and then (1 in the last year)
- Kind
- personal blog
- Feed
- https://learnbyexample.github.io/atom.xml
2025 11
- Festive offers for books on Python, Linux, Regular Expressions, Vim and more!
- Connect Four game with a twist
- Python regular expression cheatsheet and examples
- Better bindings for command line history search
- Customizing pandoc to generate beautiful pdf and epub from markdown
- Everything you need to know about sed substitution
- CLI text processing with GNU awk book announcement
- awk idioms explained
- OS installation woes
- Understanding Python re(gex)? book announcement
- Coloring matched portions with GNU grep, sed and awk
2024 11
- 100 Page Python Intro book announcement
- Festive offers for books on Python, Linux, Regular Expressions, Vim and more!
- Interactive Python Exercises and Quiz
- Vim Reference Guide book announcement
- Basic examples for the Linux date command
- Linux Command Line Computing book announcement
- Interactive GNU awk tutorial
- CLI computation with GNU datamash
- CLI text processing with GNU Coreutils book announcement
- Ruby One-Liners Guide book announcement
- Understanding Ruby Regexp book announcement
2023 50
- 2023: year in perspective
- Festive offers for books on Python, Linux, Regular Expressions and more
- Understanding JavaScript RegExp book announcement
- CLI text editing with ed
- Perl One-Liners Guide book announcement
- Vim tip 33: editing with text objects
- Vim tip 32: text and indent settings
- CLI tip 33: manipulating string case with GNU sed
- Python tip 33: sorting iterables based on multiple conditions
- Vim tip 31: mark frequently used locations
- CLI tip 32: text processing between two files with GNU awk
- Interactive exercises for GNU grep, sed and awk (TUI apps)
- Python tip 32: positive lookarounds
- Vim tip 30: some general Vim settings
- CLI tip 31: concatenate files column wise
- Python tip 31: next() function
- Vim tip 29: greedy quantifiers
- CLI tip 30: extract only the matching portions
- Python tip 30: zip() function
- CLI text processing with GNU sed book announcement
- Vim tip 28: miscellaneous motion and reposition commands
- CLI tip 29: define fields using FPAT in GNU awk
- Python tip 29: negative lookarounds
- Vim tip 27: regexp anchors
- CLI tip 28: substitute specific occurrence with GNU sed
- Python tip 28: string concatenation and repetition
- Vim tip 26: executing shell commands
- CLI text processing with GNU grep and ripgrep book announcement
- CLI tip 27: reverse text line wise with tac
- Python tip 27: enumerate() function
- Vim tip 25: substitute flags
- CLI tip 26: removing duplicate lines with GNU awk
- Python tip 22: possessive quantifiers
- Python tip 26: atomic grouping
- Vim tip 24: movement commands within the current file
- CLI tip 25: get file properties using the stat command
- Python tip 25: split and partition string methods
- 100+ Interactive Python Regex Exercises
- Vim tip 23: editing lines filtered by a pattern
- Python Regular Expressions Playground
- CLI tip 24: inserting file contents one line at a time
- Python tip 24: modifying list using insert and slice
- CLI tip 23: recursive filename matching with globstar
- Vim tip 22: word and WORD motions
- Python tip 23: map, filter and reduce
- Vim tip 21: working with tabs
- CLI tip 22: grep options to suppress stdout and stderr
- Python Regex Surprises
- Vim tip 20: character based motions within the current line
- CLI tip 21: inplace file editing with GNU awk
2022 68
- 2022: year in perspective
- Python tip 21: sorting iterables based on a key
- Vim tip 19: working with buffers
- CLI tip 20: expand and unexpand
- Interactive Linux CLI Text Processing Exercises
- Python tip 20: saving and loading json
- Vim tip 18: moving within long lines
- CLI tip 19: extended globs
- Festive deals for books on Python, Linux, JavaScript, Regular Expressions and more
- Python tip 19: manipulating string case
- Building TUIs with textual: first impressions
- Computing from the Command Line: sales report
- Vim tip 17: setting options
- CLI tip 18: inserting file contents using GNU sed
- Python tip 18: arbitrary number of arguments
- Vim tip 16: terminal mode
- CLI tip 17: common and unique lines
- Python tip 17: counting frequency of items
- Vim tip 15: moving within current line
- CLI tip 16: transpose tables
- Python tip 16: delete list elements using index or slice
- Vim tip 14: horizontal and vertical splits
- CLI tip 15: text generation with printf and brace expansion
- Python tip 15: string transliteration
- Vim tip 13: repeat last change
- Programming ebooks by Sundeep Agarwal
- CLI tip 14: specify permissions during directory creation
- Python tip 14: sequence unpacking
- Vim tip 12: save and restore sessions
- CLI tip 13: join lines of two files based on the first field
- Python tip 13: formatting numbers with underscore separation
- Vim tip 11: replace characters in Normal mode
- CLI tip 12: squeeze empty lines
- Python tip 12: negate a regex grouping
- Vim tip 10: Undo and Redo
- CLI tip 11: longest line length
- Bash compound commands and redirection
- Python tip 11: capture external command output
- Vim tip 9: named registers
- Debug woes 3: matching uppercase letters
- CLI tip 10: version sort
- Python tip 10: removeprefix and removesuffix string methods
- Python 3.11: possessive quantifiers and atomic grouping added to re module
- Vim tip 8: join lines
- CLI tip 9: awk paragraph mode
- Python tip 9: applying set-like operations for dictionaries
- Vim tip 7: changing case in Normal mode
- CLI tip 8: extract from start of file until matching line
- Vim Reference Guide: two week sales report
- Python tip 8: dict.fromkeys() method
- Vim tip 6: search word nearest to the cursor
- CLI tip 7: limiting number of filtered lines
- Python tip 7: creating a deepcopy of collections
- Vim tip 5: jumping back and forth in Normal mode
- CLI tip 6: filtering lines based on multiple conditions
- Python tip 6: inplace file editing
- Vim tip 4: reposition current line in Normal mode
- PyDev of the Week
- CLI tip 5: aligning columns
- Python tip 5: random choice and sample
- Brag post: Hacker News Front Page entries
- Removing duplicates irrespective of field order
- Vim tip 3: autocomplete words and lines in Insert mode
- Regexp gotcha 1: grouping common portions
- CLI tip 4: serialize file contents to a single line
- Automating Excel with Python - book review
- Vim prank: alias vim='vim -y'
- Python tip 4: comparison chaining
2021 23
- 2021 was a wild ride
- Vim tip 2: indent/unindent lines
- CLI tip 3: place backups in another directory with GNU sed
- Counting nested braces
- Python tip 3: expression and result with f-string
- Vim tip 1: increment/decrement numbers
- Improve your Python regex skills with 75 interactive exercises
- CLI tip 2: counting number of matches
- Programming deals
- Numeric Palindrome
- Python tip 2: membership operator
- CLI tip 1: remove metadata from images
- Python tip 1: tuple argument for startswith/endswith methods
- Announcing learnbyexample weekly newsletter
- The Indie Python Extravaganza
- Practice Python Projects book announcement
- Escaping madness to get literal field separators in awk
- Debug woes 2: unexpected array in replacement string
- Dreaming solutions
- GNU BRE/ERE cheatsheet and differences between grep, sed and awk
- Debug woes 1: multiple substitutions on the same line
- Perl one-liner articles
- Paying my bills with 'free' ebooks