2012-09-22 40 views
-1

嗨,我知道还有一些关于grep和解析的其他线程,但我尝试了大多数其他方式描述其他问题,并没有为我工作,我想解析一个openssl日志到一个.csv和通过这样做,通常;来分析列。使用grep解析器openssl输出

输出解析:

Signature Algorithm: sha1WithRSAEncryption 

Issuer: C=PT, L=Jersey, O=UFO - UFO Solutions, 
CN=UFO Software ROOT Primary CA/[email protected] 

Validity 
Not Before: Jan 24 11:10:13 2011 GMT 
Not After : Jan 21 11:10:13 2021 GMT 

Subject: C=US, L=Jersey, O=UFO - UFO Solutions,OU=CER, CN=UFO PSS Intermediate CA/[email protected] 

Subject Public Key Info: 
Public Key Algorithm: rsaEncryption 
RSA Public Key: (2048 bit) 

我想要的“=”之后解析每一个字,并得到有下一个字“=” 并保存在.csv文件中的结果

我得到最大值为与此的grep -E“\ =”的Result.txt> teste.csv和我得到:

Issuer: C=PT, CN=Teste 
Subject: C=PT, CN=Teste 

所希望的结果会是仅与结果的CSV。像:

sha1WithRSAEncryption, Jan 24 11:10:13 2011 GMT, Jan 21 11:10:13 2021 GMT, PT, Jersey, UFO, 

+3

请在您的问题中指出您所写的示例输入的预期输出结果。 – Nelson

+0

我想解析它得到一个.csv与类似项目。: 发行人commonNAme PT TESTE – drd0sPy

+1

@ drd0sPy它仍然不清楚,这就是为什么你迄今没有任何答案。请[编辑]问题并添加确切的期望输出。什么是'CommonNAme'?它不在输入中。 –

回答

0
grep -oP '(?<==)\w*' result.txt 

会做一切你所需要的(如果你的grep版本支持Perl的正则表达式)。

输出是

PT 
Teste 
PT 
Teste 

因为这是值出现在输入的顺序。

+0

嗨列弗,你能告诉我怎么可以添加到他的每个词,他与你的grep -oP'(?<==)\ w *'result.txt解析的grep结果添加“;”在前面分离的collums? – drd0sPy

+1

@ drd0sPy你不能用grep来做。它用于过滤输入,而不是交替输入。看看sed。 –

+0

好的,这是我创建的shell脚本的所有部分,所以现在我在$ word中创建了一个w ...作为$ w你的命令,并且只添加了“;” echo $ w> result.csv:D tnx – drd0sPy