我对如何根据特定条件继续管理日志文件内容到csv文件的任务感到有些失落。 基本上,问题是这样的:
编写一个通过管道接收http日志(或任意.log文件)的脚本 输入,并输出每天每个网址点击次数的汇总csv。
示例:执行管道命令
cat access.log|some filter commands|./your_script > summary.csv
创建一个名为summary.csv的文本文件,其内容为:
"行动和道路。 2015-01-01,2015-01-02。 2015年1月3日
GET /index.php,34,53,65
POST / administrator,32,59,39
..."
等等。
我现在面临的问题是如何识别和执行管道输入命令的特定部分,并在将其输送到输出管道之前应用过滤器。 根据我所熟悉的,一系列命令参数(例如" cat"," gedit",">",&#34 ; |"等可能会起作用,但这会留下识别它们并将它们作为管道命令执行的问题,而不是一个接一个地执行。
我已经搜索得非常彻底,但是除了建议将管道命令分成单独的指令并逐个执行之外,还没有找到任何有用的东西。 如果任何人都可以提出一种更简单,更有效的方法来做这件事,或者就这一特定问题提出任何建议,我们将非常感激。提前致谢。
答案 0 :(得分:2)
也许您需要tee
命令。您可以使用它来“分叉管道”,这意味着输出
可以在特定管道输入命令之后创建文件。在查找错误时非常有用。
例如:
cat access.log | some filter commands | tee out01.txt \
| some other filter | tee ou02.txt | ./your_script > summary.csv
更多示例here。