我阅读了 AskUbuntu 上的当前主题,但没有一个完全合适的。
現象是:
我想替换当前选定的文本(通过调用 bash 脚本易中风) 包含此文本的修改版本。文本由 RegEx 修改过,或者类似...它是脚本的一部分,因此这并不重要。
当前状态:
我可以使用以下方法从剪贴板读取选择内容剪辑,使用以下命令(所调用的 bash 脚本的一部分)对其进行修改并将其复制回剪贴板:
xclip -o | sed 's/ab/ef/g' | xclip -sel clip
测试字符串是
cdabcdabcdabcdab
应用上述命令后,输出(在剪贴板中)是
cdefcdefcdefcdef
这是正确的。但结果仍然存储在剪贴板中,不是粘贴回应用程序。我必须手动将其粘贴到当前正在运行的应用程序Ctrl中V。
问题是:
Ctrl我如何才能自动执行按+ 的最后一步V,以立即将结果粘贴到已选择源文本的应用程序中?
我尝试过xclip
和xsel
,但无法让它们按照上面描述的方式工作。
有什么建议么?
答案1
谢谢@meuh 的上面的评论,我能够完成这项任务:
安装这些程序:
sudo apt-get -y install xclip xdotool libnotify-bin
创建
.bash
转换脚本:#!/bin/bash # Script to replace selection with a 'sed' transformed output (callable with easystroke or similar) IN=`xclip -o` # Example: Replace all 'ab' by 'ef' RESULT=`echo "$IN" | sed -e 's/ab/ef/g` # Output result to clipboard xdotool type "$RESULT" # Transform result to HTML for output with notify-send RESULT_HTML=`echo "$RESULT" | sed 's/&/\&/g; s/</\</g; s/>/\>/g'` # Create a notification in the lower right corner with the transformation notify-send "Changed clipboard text" "Input: $IN\nOutput: $RESULT_HTML"
从以下位置调用此脚本轻松一击或处理键盘或鼠标敲击的类似程序。