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

如何精准删除文件中指定字符串且不匹配相似变体?

解决方案

你需要精确匹配**整行内容为tmp1**的行,而不是包含tmp1的行。原命令的正则/tmp1/会匹配所有包含该子串的行,所以tmp1.1和tmp1.2被误删。

有两种可行的修改方式:

方式一:使用正则锚点精准匹配整行

利用正则的行首锚点^和行尾锚点$,确保只有当整行完全等于tmp1时才被过滤:

perl -i -nle 'print if !/^tmp1$/' ./sample

方式二:直接字符串相等判断

如果确定目标行没有多余空格或换行符(你的示例文件符合这个情况),可以直接用字符串不等于判断,逻辑更直观:

perl -i -nle 'print if $_ ne "tmp1"' ./sample

执行以上任意一个命令后,只会删除单独的tmp1行,tmp1.1和tmp1.2会被保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 18:32:02