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

OSX系统使用SED批量删除目录下txt文件第25行后内容报错如何解决

Mac OSX 批量裁剪txt文件sed报错解决方案

报错根因

你遇到的报错是Mac自带的BSD版sed与GNU版sed的参数规则差异导致的:

  • BSD 版本的-i(原地修改)参数要求必须显式传入备份文件的后缀值,即使不需要备份也要传入空字符串''。你之前的写法中-i没有指定后缀,sed 会把后续的命令片段'1,25!d'识别为备份后缀,再往后的文件名就会被误判为sed命令,最终触发解析错误。
  • 额外参数说明:-n参数会关闭sed的默认输出,如果你使用'1,25!d'逻辑不需要搭配-n,只有当你使用主动打印逻辑'1,25p'时才需要加-n参数。

可用命令

不需要备份原文件

直接执行以下命令即可批量处理当前目录下所有txt文件,保留前25行,删除剩余内容:

sed -i '' '1,25!d' *.txt

需要保留原文件备份

如果需要给所有原文件生成备份,只需给-i传入备份后缀即可,例如备份文件后缀设为.bak:

sed -i '.bak' '1,25!d' *.txt

处理完成后如果不需要备份文件,可执行rm *.bak批量删除。

扩展:递归处理子目录文件

如果需要处理当前目录及所有子目录下的txt文件,可搭配find命令实现:

find . -type f -name "*.txt" -exec sed -i '' '1,25!d' {} +

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 02:48:00