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

如何删除多行字符串中每行的前40个字符?

解决字符串截取与分支名简化问题

嘿,我来帮你搞定这个字符串处理的需求!不管是用命令行快速搞定,还是写代码集成到项目里,这里都有合适的方案:

方法一:用Bash命令快速处理(适合终端/文本文件场景)

如果你的原始内容是在文本文件里,或者是其他命令的输出结果,用cut+sed的组合就能一步到位:

第一步:删除每行前40个字符

假设你的原始内容存在branches.txt文件中,执行这条命令就能直接输出去掉前40字符的内容:

cut -c 41- branches.txt

要是你直接在终端输入原始字符串,也可以用管道传递:

echo "9e600771af0eb709982673ca996dc632eacbd99c refs/heads/branch0
87499732f46076c8c054ec91b0fa71d8a720d09e refs/heads/branch1
bd274092d4126b023f7580aef30baf141ca8983b refs/heads/branch2
e27cc492e1d146b12c24ffbe0b58cfe9ea114e26 refs/heads/branch3" | cut -c 41-

执行后会得到:

refs/heads/branch0
refs/heads/branch1
refs/heads/branch2
refs/heads/branch3

第二步:简化为纯分支名

接着用sed替换掉refs/heads/前缀,把命令扩展一下就行:

cut -c 41- branches.txt | sed 's/refs\/heads\///'

或者用cut按/分割取最后一段,效果一样:

cut -c 41- branches.txt | cut -d '/' -f 3

两种方法都会得到你想要的最终结果:

branch0
branch1
branch2
branch3

方法二:用Python脚本处理(适合代码集成场景)

如果需要把这个逻辑写到项目代码里,Python的字符串操作会更灵活:

original_str = """9e600771af0eb709982673ca996dc632eacbd99c refs/heads/branch0
87499732f46076c8c054ec91b0fa71d8a720d09e refs/heads/branch1
bd274092d4126b023f7580aef30baf141ca8983b refs/heads/branch2
e27cc492e1d146b12c24ffbe0b58cfe9ea114e26 refs/heads/branch3"""

# 按行拆分原始字符串
lines = original_str.split('\n')
branch_names = []

for line in lines:
    # 跳过空行(防止异常)
    if not line:
        continue
    # 截取第40个字符之后的内容
    trimmed_line = line[40:]
    # 拆分出最后一段分支名
    name = trimmed_line.strip().split('/')[-1]
    branch_names.append(name)

# 输出结果
print('\n'.join(branch_names))

运行脚本后会直接输出:

branch0
branch1
branch2
branch3

这样不管是快速批量处理文本,还是集成到代码里,都能完美解决你的需求~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 10:06:08