learnbyexample
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
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: 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: 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 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
Multiline fixed string search and replace with CLI tools
Emulating regexp lookarounds in GNU sed
Search and replace tricks with ripgrep
I know Python basics, what next?
JavaScript regular expressions cheatsheet and examples
Creating GUI Applications with wxPython - book review
Python for maths
A short and satisfying bug hunt