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

如何使用sed删除文件中所有不包含点号的单词

原命令问题说明

你之前使用的sed '/\./!d'逻辑为删除整行完全不包含点的行,仅过滤掉了全行无点的内容,不会清除行内不带点的单词,因此和预期结果不符。

调整后的可用sed命令
sed -E 's/(^| )[^ .]+( |$)/ /g; s/ +/ /g; s/^ //; s/ $//; /^$/d' 你的输入文件

如果需要直接修改原文件,添加-i参数即可:

sed -Ei 's/(^| )[^ .]+( |$)/ /g; s/ +/ /g; s/^ //; s/ $//; /^$/d' 目标文件
命令逻辑说明
  • 第一步s/(^| )[^ .]+( |$)/ /g:全局匹配所有行首/空格后出现的、不含空格和点的独立单词,替换为空格
  • 第二步s/ +/ /g:将处理后产生的连续多个空格合并为单个空格
  • 第三步s/^ //和s/ $//:分别清除行首和行尾多余的空格
  • 最后/^$/d:删除处理后生成的空行,保证输出格式符合要求

执行上述命令后输出结果和你给出的预期完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.08 15:15:03