gpt4 book ai didi

ruby - 在特定字符串之后提取搜索查询或术语的脚本

转载 作者:太空宇宙 更新时间:2023-11-04 09:37:13 25 4
gpt4 key购买 nike

我正在尝试提取我在日志文件中记录的搜索词。

我将每个搜索词记录在日志文件中,例如

The search request for 'John' identified as ...

我想从此日志文件中提取单词“John”并将其放入另一个文本文件中。

例如 search_log.txt 文件有以下几行:

The search request for 'John' identified as ...
The search request for 'Peter Parker' identified as ...
The search request for 'Iron man' identified as ...
The search request for 'Naruto Uzumaki' identified as ...
The search request for 'Chuck Norris' identified as ...

脚本应提取单词 John、Peter Parker、Iron man、Naruto Uzumaki、Chuck Norris 并将它们放入 output.txt 中,每个术语一行。

或者提取这些单词并将它们保存到数组中的 ruby​​ 函数。

非常感谢

最佳答案

$ grep -o "search request for '[^']*'" input.txt | awk -F\' '{print $2}' > output.txt
$ cat output.txt
John
Peter Parker
Iron man
Naruto Uzumaki
Chuck Norris

首先 grep 查找所有出现的字符串“search request for”,后跟单引号中的人名,然后我们使用 awk 清理字符串,以便我们只保留人名,每行一个。

无论输入是全部在一行还是多行,使用 grep -o 的这个解决方案都有效。如果保证输入与 OP 的示例一样简单,那么我们可以寻求更简单的一步解决方案,例如仅使用 awk:

$ awk -F\' '{print $2}' input.txt 

但是只有当输入在每一行上显示一个实例时,上面的方法才有效,如果名称中有转义单引号则无效。每行接受几个“搜索请求”,还有:

$ awk -F\' '{for (i=2;i<=NF;i+=2) print $i}' input.txt

最后,如果输入真的非常简单,每行只有一个实例,我们可以使用剪切:

$ cut -d\' -f2 input2.txt

所有这些答案真的很容易找到,只需阅读联机帮助页或查看 SO 上提出的其他类似问题...:(

关于ruby - 在特定字符串之后提取搜索查询或术语的脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25335554/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com