• Stars
    star
    156
  • Rank 238,740 (Top 5 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 1 year ago
  • Updated 8 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Shell utility to interactively select lines from stdin

LineSelect

A shell utility to interactively select lines from stdin and output them to stdout. This allows you to effectively pause the pipeline to make a manual selection before the pipeline, or other composed command, continues.

graph LR;
  a[some pipeline]-->|some lines| lineselect;
  lineselect-->|a subset of those lines| b[some other pipeline];

The applications are end-less

For example, select files to delete

ls | lineselect | xargs rm

Select files from a list sorted by size and delete those files

ls -lS | lineselect | tr -s ' ' | cut -d ' ' -f 9 | xargs rm

Select docker containers to stop:

docker stop $(docker ps | lineselect  | cut -d ' ' -f 1)

(z)Grep some some log files of interest:

ls dpkg.log* | lineselect | xargs zgrep upgrade

Demo Video

Demo

Install

$ npm install -g lineselect

Acknowledgements

Built using the amazing React-for-CLI 🌈 Ink library . With the key insight of writing directly to the TTY, by-passing stdout, to render the TUI without messing up the eventual output to stdout taken from https://github.com/geier/choose and https://superuser.com/a/742789/282396 🙏.