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

如何用sed替换Linux文件前7行中以'88'结尾的单词?

解决sed替换以88结尾单词的问题

你的原命令sed -e '1,7 s/\<.*88\>//g'之所以会替换整行内容,是因为.*是贪婪匹配——它会从第一个单词的起始边界(\<)开始,匹配所有字符(包括空格)直到最后一个以88结尾的单词的结束边界(\>),最终导致整行被清空。

正确的sed命令

要精准匹配单个以88结尾的单词并替换为空格,使用以下命令:

sed '1,7 s/\<[^[:space:]]*88\>/ /g' matricole.testo

命令细节说明

  • 1,7:限定仅对文件的前7行执行操作
  • \<:匹配单词的起始位置,确保只从单个单词开头开始匹配
  • [^[:space:]]*:匹配任意数量的非空格字符,避免跨单词匹配
  • 88:指定单词的结尾内容
  • \>:匹配单词的结束位置,确保只匹配完整的单个单词
  • / /g:将匹配到的单词替换为空格,g标记表示处理一行内所有符合条件的单词

如果目标仅针对数字类单词(如示例中的1988),可以用更精准的正则:

sed '1,7 s/\<[0-9]*88\>/ /g' matricole.testo

执行后的结果

运行上述命令后,文件内容将与预期一致:

paolo rossi 
giovanna d'arco 1945
francesco totti 
francesco gabbani 1967
andrea presti 1957
franco taoli 1945
giuseppe verdi 1987

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 16:57:31