用原始选择的修改版本替换当前剪贴板选择

用原始选择的修改版本替换当前剪贴板选择

我阅读了 AskUbuntu 上的当前主题,但没有一个完全合适的。

現象是:
我想替换当前选定的文本(通过调用 bash 脚本易中风) 包含此文本的修改版本。文本由 RegEx 修改过,或者类似...它是脚本的一部分,因此这并不重要。

当前状态:
我可以使用以下方法从剪贴板读取选择内容剪辑,使用以下命令(所调用的 bash 脚本的一部分)对其进行修改并将其复制回剪贴板:

xclip -o | sed 's/ab/ef/g' | xclip -sel clip

测试字符串是

cdabcdabcdabcdab

应用上述命令后,输出(在剪贴板中)是

cdefcdefcdefcdef

这是正确的。但结果仍然存储在剪贴板中,不是粘贴回应用程序。我必须手动将其粘贴到当前正在运行的应用程序CtrlV

问题是:
Ctrl我如何才能自动执行按+ 的最后一步V,以立即将结果粘贴到已选择源文本的应用程序中?

我尝试过xclipxsel,但无法让它们按照上面描述的方式工作。

有什么建议么?

答案1

谢谢@meuh 的上面的评论,我能够完成这项任务:

  1. 安装这些程序:

    sudo apt-get -y install xclip xdotool libnotify-bin
    
  2. 创建.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/&/\&amp;/g; s/</\&lt;/g; s/>/\&gt;/g'`
    # Create a notification in the lower right corner with the transformation
    notify-send  "Changed clipboard text" "Input: $IN\nOutput: $RESULT_HTML"
    
  3. 从以下位置调用此脚本轻松一击或处理键盘或鼠标敲击的类似程序。

相关内容