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

如何使用sed删除行首尾的“-”字符并保留行中间的“-”字符

使用sed删除文本行首尾的-字符

现有情况

待处理文本:

>seq1
--A--CGT-A--
>seq2
-GA-T-A-CC--

处理目标:删除所有行开头和末尾的-,仅保留字母之间的-,期望输出:

>seq1
A--CGT-A
>seq2
GA-T-A-CC

当前使用的命令仅能删除行首的-:

sed 's/^\(-\)*//'

正确命令

直接在原有替换规则后追加删除行尾-的规则即可,完整命令:

sed 's/^-*//;s/-*$//' 你的文件路径

规则解释

  • s/^-*//:匹配行首连续的任意个-,替换为空,即删除行首横杠,和你原有逻辑一致
  • s/-*$//:匹配行尾连续的任意个-,替换为空,即删除行尾横杠
  • 两条规则用分号分隔,sed会逐行按顺序执行两次替换
  • 以>开头的序列标题行首尾没有横杠,执行替换时不会被修改,不会破坏原有格式

如果需要直接把修改写入原文件,加-i参数即可:

sed -i 's/^-*//;s/-*$//' 你的文件路径

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.26 20:45:35