我试图通过查看我的生产 Rails 日志文件来查找在所有 POST 请求中发送的参数。现在我只使用以下内容:
grep 'Started POST.*\/[fr]' log/production.log
这向我显示了 POST 何时发生但不显示参数。我想做的是按照以下方式做一些事情:
- 当遇到上面的正则表达式时,将行存储在 sed 的保持缓冲区中
- 遇到“Parameters:”时打印保持缓冲区的内容和当前行
据我了解,您需要使用正则表达式和以下行显示行。grep
可以自己做:
grep -A1 'Started POST.*\/[fr]' log/production.log
它sed
看起来像:
sed -n '/Started POST.*\/[fr]/{N;p}' log/production.log
或者如果不是所有以下行都可能包含“参数”并且您只需要它们:
sed -n '/Started POST.*\/[fr]/{N;/Parameters/p}' log/production.log
这应该可以满足您的需求:
sed -n '/Started POST.*\/[fr]/h;/Parameters/{H;g;p;q}'
它保存第一行并打印它和包含“参数”的行。只打印第一组行。