剪贴板实用程序可将多行一一粘贴回来

mar*_*lar 5 x11 clipboard

我需要一个工具或实用程序,它可以获取文本文件并以某种方式将每一行复制到剪贴板上,这样我就可以通过连续按 Ctlr-V 将文本逐行粘贴回去。

例如,如果文本包含这些行

line 1
line 2
line 3
Run Code Online (Sandbox Code Playgroud)

然后我会得到:

Ctlr-v: line 1
Ctlr-v: line 2
Ctlr-v: line 3
Run Code Online (Sandbox Code Playgroud)

在调试 telnet 会话时,我需要它来将行粘贴到终端中。一行一行的复制粘贴非常繁琐。

这样的工具是否存在,还是可以使用 xclip 或类似工具创建?

如果这有什么不同,它适用于基于 Debian 的发行版。

注意:有关对我有用的已接受解决方案的变体,请参阅 don_chrissti 的评论。

添加:

这是我最终得到的脚本。请注意使用双反斜杠来保留文本文件中的换行符。

while IFS= read -r line; do
  printf %s\\n "$line" |
  xclip -l 1 -quiet -selection primary
done < telnet
Run Code Online (Sandbox Code Playgroud)

它非常适合通过我使用的 telnet 测试 smtp 连接。

Sté*_*las 6

xclip

while IFS= read -r line; do
  printf %s "$line" |
    xclip -l 1 -quiet -selection clipboard -in
done < file.txt
Run Code Online (Sandbox Code Playgroud)

如果您需要包含换行符,请替换%s%s\n

使用-l 1xclip 保存CLIPBOARD一个请求的选择(例如由其他应用程序执行Ctrl-V),然后退出。你需要-quietxclip做,在前台。

如果你有一个像xclipboard跑步这样的应用程序,那将不起作用。这些应用程序试图始终是CLIPBOARD选择的所有者,因此会不断从xclip.

如果你有这样的应用程序运行时,您可以暂停或杀死它,或者你可以使用的PRIMARY选择,而不是(-selection primary或省略-selectionprimary默认设置),并使用鼠标中键粘贴。许多终端仿真器可以将PRIMARY选择粘贴到上Shift-Insert,其他一些粘贴到上Ctrl-Shift-Insert

如果您想知道谁从 中窃取了 CLIPBOARD 选择xclip,这可能有效:

xwininfo -id "$(xclip -selection clipboard -o -t CLIENT_WINDOW | od -vAn -tu8)" -wm
Run Code Online (Sandbox Code Playgroud)

前提是应用程序提供 CLIENT_WINDOW 目标(运行xclip -selection clipboard -o -t TARGETS以查看它是否提供)。

另请参阅expect(以及dejagnu基于 的测试框架expect)和 GNUscreen以自动将文本插入终端应用程序。

  • 不幸的是,这不起作用。当我运行脚本时,我得到的只是这个输出:等待一个选择请求。等待一个选择请求。等待一个选择请求。之后剪贴板是空的。 (2认同)