Articles of parsing

如何parsingNginxconfiguration文件?

我想find一种方法来parsingnginxconfiguration文件,以便dynamic生成我将用作文档的图表。 nginxconfiguration文件的语法如下所示(这个例子有意为简洁起见,我pipe理的configuration文件实际上要复杂得多): location / { if (GET) { echo_exec @memcache; } if (POST) { echo_exec @application; } } location @memcache { # try to get content from cache if (notfound) { # fallback to application echo_exec @application; } } location @application { # forwarding request to application } 我想生成这样的图表(当鼠标移动到一个stream程框上时,您将看到注释,正在调用哪个指令…): 据我所知nginxconfiguration文件的语法是自定义的。 我可以在src/core/ngx_conf_file.c里findparsing器,就像这样: case ';': case '{': […]

如何在日志文件中grep下一个variables的实例?

所以我试图parsingFTP日志,看看是否某个用户安全login。 到目前为止,我有这个拉用户login后的几行 cat proftpd.log.2 | grep -B 3 "USER $sillyvariable" 这是它创build的示例输出 ::ffff:127.0.0.0 UNKNOWN ftp [04/Jan/2013:11:03:06 -0800] "AUTH TLS" 234 – ::ffff:127.0.0.0 UNKNOWN ftp [04/Jan/2013:11:03:06 -0800] "USER $sillyvariable" 331 – 现在这是我想要的一个完美的例子,它显示了AUTH TLS消息和IP匹配 。 然而,情况并非总是如此,因为许多用户经常login和注销,大部分时间输出都是混乱的。 有没有办法,我可以grep的USER $sillyvariable并find他/她的匹配的IP包含在前面的行“AUTH TLS”,所以我可以知道他们安全地login? 我想你可以说我想grep的用户,然后grep向后看,如果他们的连接(匹配的IP)是安全的。 我有点卡住了,真的可以用一些帮助。 谢谢!

Wavefront OBJparsing – 为什么我不断获取不正确的数据作为输出?

我正在编写Wavefront .OBJ网格分析器。 虽然我一直在研究这个问题已经有三个星期了,但是我决定重写它的大部分内容,因为我正在逐个字符地parsing它(我觉得最后引入了太多的复杂性,无论如何都不能正常工作)。 现在我一直在逐行parsing,我觉得我的结果越来越差。 以下是我的输出示例: ( STREAM ):# cube.obj } (LINE 2){ ( STREAM ):# } (LINE 3){ ( STREAM ): } (LINE 4){ ( STREAM ):g cube } (LINE 5){ ( STREAM ): } (LINE 6){ ( VERTEX: 1 )'-597028128851671121920.000000 0.000000 -597118763794171953152.000000' ( STREAM ):v 0.0 0.0 0.0 } (LINE 7){ ( VERTEX: 2 […]

Bash脚本iperf结果的平均值

我通过以下命令多次运行iperf iperf -c 1.1.1.1 -t 60 -w 6400 -fm >> iperf.log 有时有不同的论点。 由此产生的iperf.log可能如下所示: [ 3] local 2.2.2.2 port 51129 connected with 1.1.1.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0-20.0 sec 1869 MBytes 784 Mbits/sec [ 3] local 2.2.2.2 port 51130 connected with 1.1.1.1 port 5001 [ ID] Interval Transfer Bandwidth [ 3] […]

在花括号中parsing块

我试图parsing一个dhcpd.conf文件,看起来像这样: authoritative; subnet xxxx netmask xxxx { range xxxx xxxx; deny unknown-clients; default-lease-time 86400; max-lease-time 86400; option domain-name "bla"; option domain-name-servers xxxx; option broadcast-address xxxx; option subnet-mask xxxx; option routers xxxx; host host1 { hardware ethernet 00:e1:4c:68:00:53; fixed-address 1.1.1.1; } host host2 { hardware ethernet 01:e2:4d:69:01:54; fixed-address 2.2.2.2; } host host3 { hardware ethernet 02:e3:4e:70:02:55; […]

iwlist扫描输出格式

我必须编写一个工具来从iwlist扫描中获取encryptiontypes。 我似乎无法find是否有标准输出。 谷歌search看起来像人们发布略有不同的格式,但我不知道他们是否复制/粘贴错误或什么。 具体来说,在Encryption key: On , On / Off字母总是大写? IE: IEEE 802.11i/WPA2 Version 1如何? encryption总是先于IEEE 802.11i/ ? 我希望这里可以问一下。

在Python脚本的循环中运行Bash命令

我有我的这个脚本,它是用来修改我从GPS模块收集的一些数据。 我运行这个代码,但它说有一个语法错误,我不明白为什么有一个错误,通常我使用bash命令进行parsing,不能在Python循环中使用它? ** import serial import struct ser = serial.Serial("/dev/ttyUSB0", 4800, timeout = 1) file = open("/home/pi/GPSWIFI.csv", "w") file.write('\n') for i in range(0,5): val = ser.readline(); print >> file ,i,',',val cat /home/pi/GPSWIFI.csv | grep GPGGA | cut -c19-42 >GPSWIFIMODIFIED.csv file.close() ** 提前致谢。

使用bash shellparsingCSV以打印最高分数的行

我有这样的CSV Parameter Values,Count,% of Results " david;dd@gmail.com;10300 "," 15 "," 50.0% " " david;dd@gmail.com;12300 "," 15 "," 50.0% " " davidk;dk@gmail.com;32300 "," 15 "," 50.0% " " joe;joe@gmail.com;9200 "," 15 "," 50.0% " " john;jj@gmail.com;1500 "," 15 "," 50.0% " 我想获得具有最高数字值的行,在这种情况下是32300 我已经做了一个尝试,但它使用了几个命令 export max=$(awk -F, '{split($1,a,";"); print a[3] }' contestEntryTest.csv | tr -d ' "' […]

parsingApache错误日志中的唯一错误

我有一些unruly的apache错误日志,我想parsing并得到唯一的错误。 [Fri Sep 21 06:54:24 2012] [error] [client xxx.xxx.xxx.xxx ] PHP Fatal error: <error message>, referrer: <url> 我想我只是想在“PHP致命”部分切断线路,丢弃前半部分并通过uniq运行下半部分。 我的目标是识别所有的错误,但是由于许多重复的错误,需要手动查看每条错误。 什么是完成这个最好的方法?

我如何知道ldd如何解决依赖关系

对于由ldd标识的依赖项,我怎么知道它是使用二进制的RPATH还是环境的LD_LIBRARY_PATH?