You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Perl清理剪贴板中Kindle复制内容的多余信息后粘贴

你写的Perl命令存在两个核心问题:

  1. 正则里的.没有转义,.在正则语法中是通配符,会匹配任意字符,不符合精确匹配Kindle Edition.的需求
  2. 你用的是内容替换逻辑,仅把匹配到的内容替换为空,不会删除整行,所以处理后会残留多余空行,达不到grep -v过滤掉整行的效果

正确实现(和你用的grep逻辑完全一致)

pbpaste | perl -Mutf8::all -ne 'print unless /Kindle Edition\.\s*$/ || /^\s*$/' | pbcopy

逻辑说明:

  • -n 参数会让Perl逐行遍历输入内容,自动将每行内容赋值给默认变量$_
  • 规则和grep -v完全匹配:只有当前行既不是末尾带Kindle Edition.的引用来源行,也不是全空白的空行时,才会打印输出
  • 正则里的\s*兼容末尾可能存在的多个空格、制表符等空白字符,适配性更强

如果你坚持要用替换模式实现,也可以参考以下写法:

pbpaste | perl -Mutf8::all -0777 -E '$_ =~ s/^\s*$|.*Kindle Edition\.\s*$//mg; s/\n+/\n/g; print $_' | pbcopy

这里加了-0777参数一次性读取全部输入,替换完匹配内容后再把连续多个换行合并为单个,也能达到预期效果。

内容的提问来源于stack exchange,提问作者jonah_w

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 08:54:02