Echo "string" | xclip -selection буфер обмена, копирует строку, но также добавляет к ней новую строку. как это исправить?

это команда, ответственная за добавление новой строки в string

echo "string" | xclip -selection clipboard

Ответ 1

echo -n "string" | xclip -selection clipboard

Я, вероятно, должен был немного разобраться. По умолчанию для эхо выводится строка И новая строка. -n подавляет последнее.

Ответ 2

Более общее решение - игнорировать новые строки независимо от источника ввода. Например, общий вариант использования - скопировать в буфер обмена путь к текущему каталогу. Команда

pwd | xclip -selection clipboard

копирует новый символ строки, и это часто не то, что мы хотим. решение:

pwd | xargs echo -n | xclip -selection clipboard

Вы можете создать псевдоним, чтобы сделать его более удобным:

alias xclip='xargs echo -n | xclip -selection clipboard'

и теперь использовать:

pwd | xclip # copied without new line
echo "foo" | xclip # copied without new line

Ответ 3

Начиная с версии 0.13 xclip, у вас есть универсальный способ сохранения внутренних новых строк с параметром r или rmlastnl.

Таким образом, вы будете иметь:

pwd | xclip -r # copied without new line
echo "foo" | xclip -r # copied without new line
ps | xclip -r # copied without the last new line!