Post History
I'll post this as an example of what I'm looking to do. The following script: import sys a = sys.stdin.read() b = a.strip() c = map(lambda s: s.strip(), b.splitlines()) for s in c: p...
Answer
#1: Initial revision
I'll post this as an example of what I'm looking to do. The following script: ```python import sys a = sys.stdin.read() b = a.strip() c = map(lambda s: s.strip(), b.splitlines()) for s in c: print(s) ``` Will remove: * Whitespace at the beginning and end of the file or stream * Whitespace at the beginning and end of each line (except for the legitimate line ending, of course) ```sh $ echo -e " hello\nmellow \nworld\n\n\n" | python trim.py | bat -A ───────┬───────────── │ STDIN │ Size: - ───────┼───────────── 1 │ hello␊ 2 │ mellow␊ 3 │ world␊ ───────┴───────────── ``` Caveats: * In practice, you would probably want to add this script to your shell's `PATH` to use it * It might be worth adding some CLI flags to control which whitespace exactly is removed * The performance (especially memory usage) of this is probably bad, it does not efficiently handle one line at a time (and maintain a "consecutive blanks" buffer for removing trailing whitespace) This seems like such an obvious task that there must surely be a Unix program for it already. However I could not find anything better than a Python script or `sed` with a somewhat-complex regex.