我需要一个工具或实用程序,它可以获取文本文件并以某种方式将每一行复制到剪贴板上,这样我就可以通过连续按 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 连接。
与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 1
xclip 保存CLIPBOARD
一个请求的选择(例如由其他应用程序执行Ctrl-V),然后退出。你需要-quiet
的xclip
做,在前台。
如果你有一个像xclipboard
跑步这样的应用程序,那将不起作用。这些应用程序试图始终是CLIPBOARD
选择的所有者,因此会不断从xclip
.
如果你有这样的应用程序运行时,您可以暂停或杀死它,或者你可以使用的PRIMARY
选择,而不是(-selection primary
或省略-selection
为primary
默认设置),并使用鼠标中键粘贴。许多终端仿真器可以将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
以自动将文本插入终端应用程序。