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

Mac OSX下使用sed批量移除每行指定字符串片段失败求助

解决方案

针对Mac OSX(BSD sed)环境,要移除每行中-it后跟随的随机字符段(直到第一个/为止),可以用以下方式实现:

单文件处理(输出结果到终端)

使用扩展正则表达式(语法更直观,推荐):

sed -E 's/-it[^/]+//' input.txt

若习惯用基本正则表达式,需转义+元字符:

sed 's/-it[^/]\+//' input.txt

批量原地修改文件

Mac的sed在使用-i(原地修改)选项时,必须指定备份后缀(传入空字符串表示不保留备份文件):

sed -i '' -E 's/-it[^/]+//' *.txt

将*.txt替换为你实际的已排序文件匹配模式即可。

正则逻辑说明

  • -it:精确匹配字面量字符串-it
  • [^/]+:匹配一个或多个非斜杠字符,确保只删除-it到下一个/之间的随机内容,不会破坏后续路径部分

测试你的示例字符串:

arinare-naturale-sexy-e-p0rchissima-f-it63s1vg0/index.htmli

执行命令后会输出:

arinare-naturale-sexy-e-p0rchissima-f/index.htmli

关键差异提示

Mac OSX自带的是BSD版本sed,和Linux的GNUsed存在语法区别:

  • 启用扩展正则需用-E选项(GNUsed用-r)
  • 原地修改-i必须指定备份后缀,不能直接写-i

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 08:17:09