Команда cygwin для копирования в буфер обмена Windows

83

Я вижу здесь:

http://www.pgrs.net/2008/1/11/command-line-clipboard-access

что в linux и osx есть способ скопировать в буфер обмена из командной строки. Итак, я запустил файл cygwin setup.exe, но не смог найти пакет xsel. Я предполагаю, что этот пакет не был перенесен на Windows? Похоже, в Windows есть инструмент:

http://www.labnol.org/software/tutorials/copy-dos-command-line-output-clipboard-clip-exe/2506/

Думаю, я попробую, но в среднем я подумал, что спрошу, нашел ли кто-нибудь хорошее решение.

andersonbd1
источник

Ответы:

67

На странице, на которую вы указали ссылку, есть комментарии, подсказывающие, как это сделать в Windows:

В Windows Cygwin поставляется с getclip и putclip, которые выполняют ту же работу.

Андре Миллер
источник
16
Если у вас их нет, вам нужно установить cygutils-extraпакет ( src ). Интересно, что Бабун по умолчанию пропускает этот пакет.
chrnola
160

Cygwin поставляется со специальным файлом устройства, который называется /dev/clipboard:

echo foobar > /dev/clipboard  # Puts "foobar\n" on the clipboard
cat /dev/clipboard  # Pastes clipboard to stdout
Адам Розенфилд
источник
3
это тоже работает, но я не могу принять два разных ответа
andersonbd1
5
Это лучше, чем getclip / putclip, так как не требует установки пакета.
Stabledog
8
Преимущество getclip / putclip перед / dev / clipboard состоит в том, что у первого есть опции для преобразования между окончаниями строк unix и dos.
esquifit
8
Преимущество / dev / clipboard в том, что он поддерживает UTF8, а getclip / putclip - нет.
Максимилиан Хилс
2
И его легко создавать, putclipсодержащее cat - >/dev/clipboardи getclipсодержащее cat /dev/clipboard- в виде псевдонимов, функций или скриптов, в зависимости от того, что вам нравится. Конечно, вы можете использовать любую пару имен скриптов. У Mac есть pbcopyи, например, pbpasteдля размещения и получения информации из монтажного стола (буфера обмена).
Джонатан Леффлер
28

Я второй ответ выше

Помещение текста в буфер обмена Windows

putclip < foo.txt

Чтобы передать в файл любой текст, находящийся в буфере обмена Windows

getclip > foo.txt

источник
@ Адриан Спасибо, что заметили мое бесполезное использование кошки. Я склонен злоупотреблять кошкой, а не просто трубками. Я обновил свой ответ.
25

getclip / putclip находится в пакете cygutils-extra.

Исккин
источник
12

как насчет просто

clip < file.extension

только что попробовал мой ключ ssh

Бенджамин Свитнам
источник
1
clip.exeбыла представлена ​​в Windows Vista, так что да, вы тоже можете ее использовать, но возможности ограничены.
RobSiklos
2

Не совсем то же самое, но вот регистратор клиббордов.

#!/usr/bin/ksh
while true
do
    if [[ "$(</dev/clipboard)" = "${LastClip}" ]]
    then
            sleep 2
    else
            LastClip="$(</dev/clipboard)"
            echo "$(</dev/clipboard)" >> $HOME/cliplog.txt
            sleep 1
    fi
done
Чарльз Степп
источник