1

我试图通过查看我的生产 Rails 日志文件来查找在所有 POST 请求中发送的参数。现在我只使用以下内容:

grep 'Started POST.*\/[fr]' log/production.log

这向我显示了 POST 何时发生但不显示参数。我想做的是按照以下方式做一些事情:

  1. 当遇到上面的正则表达式时,将行存储在 sed 的保持缓冲区中
  2. 遇到“Parameters:”时打印保持缓冲区的内容和当前行
4

2 回答 2

2

据我了解,您需要使用正则表达式和以下行显示行。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
于 2012-07-02T20:27:55.420 回答
2

这应该可以满足您的需求:

sed -n '/Started POST.*\/[fr]/h;/Parameters/{H;g;p;q}'

它保存第一行并打印它和包含“参数”的行。只打印第一组行。

于 2012-07-02T20:43:25.287 回答