Intereting Posts
кросс-компилятор Правила rsync только для синхронизации конкретных субдиров в длинных путях Необходимо удалить десятичную точку из вывода команды Исправление CSV-файла, в котором в некоторых строках отсутствуют столбцы. Как я могу открыть файл в VIM в режиме readonly, если он уже имеет swap-файл? NFS umount не находит каталог в / proc / mounts Сохранение подзаголовка в фоновом режиме Как изменить интервал между строками в терминаторе? передача переменной tmux в shell-команду в tmux.conf производительность на Linux-системе при последовательном соединении нескольких USB-накопителей на USB-концентраторах? spamassassin не чтит local.cf Как настроить запись cron, которая работает через 00 и 30 после часа? Как изменить среду оболочки, замеченную приложениями, запущенными на рабочем столе? Можете ли вы использовать grub для загрузки файла раздела RW, хранящегося на жестком диске FAT32? Неизвестная функция в Vim

Утилита буфера обмена для вставки нескольких строк по одному

Мне нужен инструмент или утилита, которая может взять текстовый файл и скопировать каждую строку в буфер обмена таким образом, чтобы я мог вставлять текст по строкам, непрерывно нажимая Ctlr-V.

Например, если текст содержит эти строки

line 1 line 2 line 3 

Тогда я получу:

 Ctlr-v: line 1 Ctlr-v: line 2 Ctlr-v: line 3 

Мне нужно это для вставки строк в терминал при отладке сеансов telnet. Очень утомительно копировать и вставлять строки один за другим.

Существует ли такой инструмент или он может быть создан с использованием xclip или аналогичного?

Это для дистрибутивов на основе Debian, если это имеет значение.

Примечание. См. Комментарий don_chrissti относительно вариации принятого решения, которое сработало для меня.

Дополнение:

Это сценарий, в котором я оказался. Обратите внимание на использование двойной обратной косой черты для сохранения новых строк из текстового файла.

 while IFS= read -r line; do printf %s\\n "$line" | xclip -l 1 -quiet -selection primary done < telnet 

Он отлично работает для тестирования соединений smtp по telnet, который я использую для этого.

С помощью xclip :

 while IFS= read -r line; do printf %s "$line" | xclip -l 1 -quiet -selection clipboard -in done < file.txt 

Замените %s %s\n если вам нужна новая строка.

Если -l 1 xclip содержит выбор CLIPBOARD для одного запроса (другими приложениями, например, Ctrl-V ), а затем завершается. Вам нужно -quiet для xclip сделать это на переднем плане.

Это не сработает, если у вас есть приложение, такое как xclipboard . Эти приложения стараются всегда быть владельцем выбора CLIPBOARD , поэтому он будет красть его непрерывно из xclip .

Если у вас запущено такое приложение, вы можете приостановить или убить его, или вместо этого вы можете использовать выбор PRIMARY ( -selection primary или опустить – -selection по умолчанию – по умолчанию) и вставить с помощью средней кнопки мыши. Многие эмуляторы терминала могут вставлять PRIMARY выбор в Shift-Insert , а другой – в Ctrl-Shift-Insert .

Если вы хотите узнать, кто крадет выбор CLIPBOARD из xclip , это может сработать:

 xwininfo -id "$(xclip -selection clipboard -o -t CLIENT_WINDOW | od -vAn -tu8)" -wm 

при условии, что приложение предлагает цель CLIENT_WINDOW (запустите xclip -selection clipboard -o -t TARGETS чтобы убедиться, что это так).

См. Также dejagnudejagnu для основы тестирования на основе expect ) и screen GNU для автоматизации вставки текста в приложения терминала.