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

如何用grep提取test_long_sentence.txt中含test1的引号闭合前内容?

解决方案

我刚好处理过类似的需求,用带有Perl正则支持的grep命令就能直接搞定,完全不需要修改原文件。试试这个命令:

grep -Po '^.*?test1.*?(?=")' test_long_sentence.txt

命令拆解说明:

  • -P:开启Perl兼容正则模式,这让我们能使用更灵活的匹配语法(比如正向预查)
  • -o:只输出匹配到的部分,而不是整行内容,刚好符合你要提取特定片段的需求
  • ^.*?test1.*?(?="):这个正则的逻辑很直观:
    • ^:从行的开头开始匹配
    • .*?test1:非贪婪匹配到第一个test1(避免跳过多个test1的情况)
    • .*?(?="):继续非贪婪匹配,直到遇到未被包含在结果里的双引号((?=")是正向预查,只判断引号存在但不把它包含到输出中)

如果你的文本里用的是单引号,只需要把正则里的"换成'就行:

grep -Po "^.*?test1.*?(?=')" test_long_sentence.txt

实际效果示例:

假设你的文本行是:

"User data: test1, order ID 123" | timestamp: 2024-05-20

运行第一个命令后,输出会是:

User data: test1, order ID 123

完美提取到引号闭合前的目标内容,还自动排除了引号后的无关数据~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:50:41