gpt4 book ai didi

bash - 在 shell 脚本中使用分隔符进行 grep

转载 作者:行者123 更新时间:2023-11-29 09:29:19 25 4
gpt4 key购买 nike

您好,我有一个日志文件,我正在执行这样的 grep 操作。

cat logfile | grep select

2018-03-20T15:26:34,397 INFO [2da4e66f-6092-46a7-9542-60afc0611205 HiveServer2-Handler-Pool: Thread-32([])]: ql.Driver (Driver.java:compile(429)) - Compiling command(queryId=hive_20180320152634_a6ef02a1-e018-4085-8ceb-8a8d2733b427): select * from reportingperiod limit 5
2018-03-20T15:26:37,761 INFO [HiveServer2-Background-Pool: Thread-35([])]: ql.Driver (Driver.java:execute(1735)) - Executing command(queryId=hive_20180320152634_a6ef02a1-e018-4085-8ceb-8a8d2733b427): select * from reportingperiod limit 5

我正在尝试根据这样的分隔符提取查询部分

delimiter based extract, first delimiter ': ' upto '\n'

这样我就可以获得这样的预期输出。

select * from reportingperiod limit 5

最初我尝试使用正则表达式和 grep -OE 方法进行查询提取。现在我正在尝试实现一个通用方法,以便捕获任何查询。

我试过这样的。

IFS=$': '
for i in `cat logfile`; do echo $i;
done

上面的代码没有按预期工作,因为我不知道如何传递第二个分隔符来提取查询。任何帮助将不胜感激。

最佳答案

您也可以使用 cut。

我的意见是你应该使用最简单的工具来满足你的要求,所以这可能会好一点。

打印所有,在第一个之后:

cut -d ':' -f 2- <file>

在前 2 个字段之后打印内容。

echo xxx:yyy:zzz | cut -d ':' -f -2 --complement

关于bash - 在 shell 脚本中使用分隔符进行 grep,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49789779/

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