select - macOS


Overview

select is a command-line tool for interactive text selection and processing in macOS. It allows users to select portions of text from standard input, manipulate them, and send them to the specified command.

Syntax

select [-h] [-s] [-e] [-s] [-f FORMAT] [-p PROMPT] [-l LABEL] [-t]

Options/Flags

  • -h: Display usage instructions.
  • -s: Suppress leading and trailing whitespace from the selected text.
  • -e: Exit the command upon empty input.
  • -s: Select the first match instead of entering interactive mode.
  • -f FORMAT: Specify the output format. Defaults to %s (selected text).
  • -p PROMPT: Set the prompt to display before selection. Defaults to %p (default shell prompt).
  • -l LABEL: Label the selection with a specified value.
  • -t: Print selected lines with line numbers.

Examples

Simple Selection:

echo "Hello, world!" | select

Selection with Prompt:

select -p "Enter the text to match: "

Format Output:

echo "Apple, Banana, Cherry" | select -f "%2s %t"

Common Issues

  • Empty output: Ensure the input contains text or that -e is not used.
  • Incorrect selection: Verify the regular expression or -s is not enabled.
  • Formatting problems: Use -f to specify the desired output format.

Integration

Pipe to Other Commands:

find . -name "*.txt" | select | sort

Use in Shell Scripts:

#!/bin/bash

TEXT=$(echo "A,B,C,D" | select)
echo "Selected option: $TEXT"
  • cut: Selects specific fields from each line of input.
  • grep: Performs pattern matching and line selection.
  • tr: Translates characters from standard input.