用唯一关键字grep两行

时间:2016-04-22 00:28:33

标签: unix grep logfiles

我想获取一个txt文件并执行某种grep命令并将输出保存到要在R中使用的文件中。 请考虑我在日志文件中有以下内容:

pragma table_info(x)

我希望能够抓住每个拥有current_t和rv的行。我希望我能将其输出为:

current_t: 178.027

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)

rv: -8.421698E-06

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)

NullReferenceException: Object reference not set to an instance of an object
at ModelActions.Update () [0x00000] in <filename unknown>:0 

(Filename:  Line: -1)

 current_t: 179.7662

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)

rv: -8.413203E-06

(Filename: C:/buildslave/unity/build/artifacts/generated/common/runtime/UnityEngineDebugBindings.gen.cpp Line: 37)

其中所有时间都放在一列中,而rv放在下一列中。是否有grep命令让我做这样的事情?谢谢!

1 个答案:

答案 0 :(得分:2)

awk救援!

$ awk -F: '$1~/current_t/{ct=$2} $1~/rv/{print ct, $2}' file          

 178.027  -8.421698E-06
 179.7662  -8.413203E-06

假设您的数据始终匹配对。