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

如何利用xsel将选中的多行文本合并为单行且兼容单行场景

xsel选中文本多余换行合并单行解决方案

日常选中段落内容后通过xsel获取选中文本时,输出常带有多余换行、空行呈现多行形态,需要将其转换为无多余换行的单行形态,同时兼容本身就是单行的输出场景,不对单行内容做额外修改。

方案1:paste命令极简实现(推荐)

直接使用paste原生的行拼接能力即可实现需求,命令如下:

xsel | paste -s -d ' ' -

参数说明:

  • -s:将输入的所有行按顺序拼接为单行
  • -d ' ':指定行之间的拼接分隔符为单个空格
  • 若输入本身为单行,该命令不会做任何修改,完美兼容单行场景

方案2:tr+sed组合实现(自定义程度高)

如果需要额外调整空格、空白规则,可以使用管道组合命令:

xsel | tr '\n' ' ' | sed -e 's/[ ]\+/ /g' -e 's/^ *//' -e 's/ *$//'

各部分作用:

  • tr '\n' ' ':将所有换行符替换为空格
  • sed 's/[ ]\+/ /g':合并连续的多个空格为单个空格,同时清空空行转换产生的多余空格
  • 首尾空格去除规则可根据需求自行增删,原本为单行的内容不会被修改

常用配置

可以将命令写入shell配置文件(/.bashrc、/.zshrc等)设置别名,方便快速调用:

alias xsel-line="xsel | paste -s -d ' ' -"

配置生效后直接执行xsel-line即可直接得到合并后的单行选中文本。如果需要将处理后的内容直接写回剪切板,可修改命令为:

alias xsel-line="xsel | paste -s -d ' ' - | xsel -b"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 06:27:01