util/textselect

master
Repositories | Summary | Log | Files | README.md | LICENSE

Branches

NameLast commit dateAuthor
master at "add pipeto utility for ..."2024-09-05 21:06Friedel Schön

About

# textselect

`textselect` is a command-line utility that allows users to interactively select lines from a text file and optionally execute a command with the selected lines. This can be particularly useful for filtering input before processing it with other tools or scripts.

## Features

- Interactively select lines from a text file using a curses-based interface.
- Save selected lines to an output file.
- Execute commands with the selected lines as input.

## Installation

To build `textselect` from source, you'll need a C compiler and the `ncurses` library. Clone the repository and run the following commands:

```sh
git clone https://github.com/friedelschoen/textselect.git
cd textselect
make
make PREFIX=... install
```

## Usage

```sh
textselect [-hnv0] [-o output] <input> [command [args...]]
```

### Options

- `-h`: Display the help message and exit.
- `-n`: Keep empty lines which are not selectable.
- `-o output`: Specify an output file to save the selected lines.
- `-v`: Invert the selection of lines.
- `-0`: Print selected lines delimited by a NUL-character.

### Navigation and Selection Keys

- `UP, LEFT`: Move the cursor up.
- `DOWN, RIGHT`: Move the cursor down.
- `v`: Invert the selection of lines.
- `SPACE`: Select or deselect the current line.
- `ENTER, q`: Quit the selection interface.

### Examples

```sh
# most simple example, select couple lines from a text-file and print it to the terminal afterwards
textselect input.txt

# select couple lines from a text-file and save it to a text-file
textselect -o output.txt

# select couple lines from a text-file and pass these to `lolcat` for some funny output
textselect input.txt lolcat

# select couple lines from a command and print it to the terminal afterwards (choosing from installed packages in Void Linux)
textselect <(xbps-query -l)

# select couple lines from a command and execute command with lines as arguments (removing unnecessary packages in Void Linux)
textselect <(xbps-query -m) xargs xbps-remove
```

## License

This project is licensed under the zlib License. See the [LICENSE](LICENSE) file for details.

## Contributing

Contributions are welcome! Please open an issue or submit a pull request on GitHub.