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

Mac终端sed删除THE Lord开头非one结尾行及^$锚点失效问题

问题原因

  1. 正则写法错误:你当前使用的/^THE Lord*one$/正则逻辑错误,Lord*表示匹配Lor后面跟任意数量的d字符,不是匹配THE Lord之后的任意内容。
  2. 换行符格式问题:Mac自带的BSD sed对行尾锚点$的匹配基于Unix格式换行符\n,如果你的Test.txt是Windows格式,行尾会携带额外的\r字符,导致one$无法匹配到实际行尾的one\r内容。
  3. 命令文件名错误:你测试锚点时执行的命令操作的是Test.sh,而非你要处理的Test.txt文件,自然不会生效。

解决方案

步骤1:转换文件为Unix换行格式

如果已经安装dos2unix工具,直接执行:
dos2unix Test.txt
如果没有安装,用sed直接转换即可:
sed -i.bak 's/\r$//' Test.txt && rm -f Test.txt.bak

步骤2:执行修正后的sed命令

sed -i "" '/^THE Lord.*one$/!d' Test.txt
这里的.*表示匹配THE Lord到行尾one之间的任意长度任意字符,符合你的匹配需求。

执行完成后查看Test.txt内容,即可得到预期的唯一匹配行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.13 19:09:00