---
name: "yank-cli"
section: "1"
platform: "linux"
package: "yank"
version: "1.3.0-1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/yank-cli"
---

# yank-cli(1)

yank terminal output to clipboard

## 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)](/xsel/1x.md) 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

The **yank** utility exits 0 on success, and \>0 if an error occurs.

## SEE ALSO

[re\_format(7)](/re_format/7.md)

## 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)](/re_format/7.md).
