YANK(1)

NAME
yank - yank terminal output to clipboard

SYNOPSIS
yank [-1ilxv] [-d delim] [-g pattern] [-- command [argument ...]]

DESCRIPTION
Read input from stdin and display a selection interface that allows a field to be selected and copied to the clipboard. Fields are either recognized by a regular expression using the -g option or by splitting the input on a delimiter sequence using the -d option, see DELIMITERS.

Using the arrow keys will move the selected field, see COMMANDS. Pressing the return key will invoke command and write the selected field to its stdin. The command defaults to xsel(1x) but could be anything that accepts input on stdin, see EXAMPLES.

The options are as follows:

-1  If only one field is recognized, select it and invoke command without displaying the selection interface.

-d delim
    All input characters not present in delim will be recognized as fields, see DELIMITERS.

-g pattern
    Use pattern to recognize fields, expressed as a POSIX extended regular expression.

-i  Ignore case differences between pattern and the input.

-l  Use the default delimiters except for space, see DELIMITERS.

-v  Prints version.

-x  Use alternate screen.

-- command [argument ...]
    Use command with zero or more args as the yank command.

COMMANDS

Ctrl-A | g
    Move selection to the first field.

Ctrl-C | Ctrl-D
    Exit without invoking the yank command.

Ctrl-E | G
    Move selection to the last field.

Ctrl-P/Ctrl-N | Left/Right | h/l
    Move selection to the left or right.

Up/Down | j/k
    Move selection to the next or previous line.

Enter
    Exit using the selected field.

DELIMITERS
If the -d and -g options are omitted the following characters are recognized as delimiters by default:

\f  form feed

\n  new line

\r  carriage return

\s  space

\t  horizontal tab

If the -d option is present space is not recognized as a delimiter.

EXAMPLES
Yank an environment variable key or value:

    $ env | yank -d =

Yank a field from a CSV file:

    $ yank -d \", <file.csv

Yank a whole line using the -l option:

    $ make 2>&1 | yank -l

If stdout is not a terminal the selected field will be written to stdout and exit without invoking the yank command. Kill the selected PID:

    $ ps ux | yank -g [0-9]+ | xargs kill

Yank the selected field to the clipboard as opposed of the default primary clipboard:

    $ yank — xsel -b

DIAGNOSTICS

SEE ALSO
re_format(7)

AUTHORS
Anton Lindqvist <anton@basename.se>

CAVEATS
Recognizing fields enclosed in brackets requires ‘’] to be present before ‘[’ in the argument given to the -d option, see re_format(7).