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

尝试删除多个.txt文件前23行时遭遇sed命令错误求助

解决sed删除多文件前23行的错误问题

你的命令出错有两个核心原因:

  • 文件名匹配错误:* .txt里的空格让shell把*和.txt当成两个独立参数,*会匹配当前目录下所有文件(包括非.txt文件),.txt则被当作一个不存在的文件名传入sed
  • 表达式未加引号:1,23d没有用引号包裹,在某些shell环境下可能被解析成其他内容,导致sed无法识别正确的命令

正确命令分两种情况:

1. Linux系统(GNU sed)

sed -i -e '1,23d' *.txt
  • *.txt 正确匹配所有后缀为.txt的文件
  • 用单引号包裹1,23d,避免shell解析干扰sed的命令逻辑
  • -i 直接原地修改文件(无备份)

2. macOS/BSD系统(BSD sed)

如果需要保留原文件备份(备份文件后缀为.bak):

sed -i.bak -e '1,23d' *.txt

如果不需要备份:

sed -i '' -e '1,23d' *.txt

BSD sed的-i参数必须指定备份后缀,空字符串表示不生成备份。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 15:37:33