Pattern match exclusive return pattern/variable


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Pattern match exclusive return pattern/variable
# 1  
Old 06-07-2013
PHP Pattern match exclusive return pattern/variable

I have an application(Minecraft Server) that generates a logfile live. Using Crontab and screen I send a 'list' command every minute.

Sample Log view:
Code:
2013-06-07 19:14:37 [INFO] [Minecraft-Server] <Willrocksyea1> hello*
2013-06-07 19:14:41 [INFO] [Minecraft-Server] <Gromden29> hey
2013-06-07 19:14:42 [INFO] [Minecraft-Server] Gromden29 lost connection: disconnect.quitting
2013-06-07 19:26:46 [INFO] [Minecraft-Server] There are 1/12 players online:
2013-06-07 19:26:46 [INFO] [Minecraft-Server] Willrocksyea1

I have the log file displayed online for my players. So far this is what I have:
Code:
grep -nA1 ' players online:' ForgeModLoader-server-0.log

Which will search for a simple pattern and return ALL instances as well as the additional information aka:
Code:
1862:2013-06-07 21:49:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1863-2013-06-07 21:49:01 [INFO] [Minecraft-Server] Willrocksyea1
1864:2013-06-07 21:50:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1865-2013-06-07 21:50:01 [INFO] [Minecraft-Server] Willrocksyea1
1866:2013-06-07 21:51:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1867-2013-06-07 21:51:01 [INFO] [Minecraft-Server] Willrocksyea1
1868:2013-06-07 21:52:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1869-2013-06-07 21:52:01 [INFO] [Minecraft-Server] Willrocksyea1
1870:2013-06-07 21:53:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1871-2013-06-07 21:53:01 [INFO] [Minecraft-Server] Willrocksyea1
1872:2013-06-07 21:54:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1873-2013-06-07 21:54:01 [INFO] [Minecraft-Server] Willrocksyea1
1874:2013-06-07 21:55:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1875-2013-06-07 21:55:01 [INFO] [Minecraft-Server] Willrocksyea1
1876:2013-06-07 21:56:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1877-2013-06-07 21:56:01 [INFO] [Minecraft-Server] Willrocksyea1
1878:2013-06-07 21:57:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1879-2013-06-07 21:57:01 [INFO] [Minecraft-Server] Willrocksyea1
1880:2013-06-07 21:58:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1881-2013-06-07 21:58:01 [INFO] [Minecraft-Server] Willrocksyea1
1882:2013-06-07 21:59:01 [INFO] [Minecraft-Server] There are 1/12 players online:
1883-2013-06-07 21:59:01 [INFO] [Minecraft-Server] Willrocksyea1

Two things I have not figured out and am requesting an assist.
1. display only last occurance: I tried tail, but I cannot guarantee that the 'list' injection will be in the last x number of lines.
2. Any way to 'kill' the junk in the two lines, all I need is the x/12 players, not the year-m-d h:m:s [statusflag] [dorky name]. I wouldnt mind being able to save the player names out to a text file but I still cant remove the rest of the junk so that I can ultimately use the online players as a variable and the player names themselves included with php on my website.

(If your a pro please dont look at my website, I'm a newbie in this domain, thus my humble question)

Any help is appreciated and thanks in advance for reading this Smilie
-Shawn
# 2  
Old 06-08-2013
1.
grep then tail
2.
cut after the first fields
3.
Pipe the one command's output to the next command's input
Code:
cut -d' ' -f5- logfile | 
grep -nA1 ' players online:' |
tail -2

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Match Pattern and print pattern and multiple lines into one line

Hello Experts , require help . See below output: File inputs ------------------------------------------ Server Host = mike id rl images allocated last updated density vimages expiration last read <------- STATUS ------->... (4 Replies)
Discussion started by: tigerhills
4 Replies

2. Shell Programming and Scripting

Rearrange or replace only the second line after pattern match or pattern match

Im using the command below , but thats not the output that i want. it only prints the odd and even numbers. awk '{if(NR%2){print $0 > "1"}else{print $0 > "2"}}' Im hoping for something like this file1: Text hi this is just a test text1 text2 text3 text4 text5 text6 Text hi... (2 Replies)
Discussion started by: invinzin21
2 Replies

3. Shell Programming and Scripting

sed : match one pattern then the next consecutive second pattern not working

Ive used this snippet of code on a solaris box thousands of times. But it isnt working on the new linux box sed -n '/interface LoopBack0/{N;/ ip address /p;}' *.conf its driving me nuts !! Is there something Im missing ? (7 Replies)
Discussion started by: popeye
7 Replies

4. Shell Programming and Scripting

Print only next pattern in a line after a pattern match

I have 2013-06-11 23:55:14 1Umexd-0004cm-IG <= user@domain.com I need sed/awk operation on this, so that it should print the very next pattern only after the the pattern mach <= ie only print user@domain.com (7 Replies)
Discussion started by: anil510
7 Replies

5. UNIX for Dummies Questions & Answers

Match Pattern after certain pattern and Print words next to Pattern

Hi experts , im new to Unix,AWK ,and im just not able to get this right. I need to match for some patterns if it matches I need to print the next few words to it.. I have only three such conditions to match… But I need to print only those words that comes after satisfying the first condition..... (2 Replies)
Discussion started by: 100bees
2 Replies

6. Shell Programming and Scripting

Awk to match a pattern and perform a search after the first pattern

Hello Guyz I have been following this forum for a while and the solutions provided are super useful. I currently have a scenario where i need to search for a pattern and start searching by keeping the first pattern as a baseline ABC DEF LMN EFG HIJ LMN OPQ In the above text i need to... (8 Replies)
Discussion started by: RickCharles
8 Replies

7. Shell Programming and Scripting

Need one liner to search pattern and print everything expect 6 lines from where pattern match made

i need to search for a pattern from a big file and print everything expect the next 6 lines from where the pattern match was made. (8 Replies)
Discussion started by: chidori
8 Replies

8. Shell Programming and Scripting

pattern match and replace another pattern in same line

I have a pattern username:x:32005:32006::/usr/local/user:/bin/bash I need to match the line containing username and replace /bin/bash with /usr/local/my/bin/noshell So it becomes username:x:32005:32006::/usr/local/user:/usr/local/my/bin/noshell (7 Replies)
Discussion started by: anilcliff
7 Replies

9. Shell Programming and Scripting

AWK match $1 $2 pattern in file 1 to $1 $2 pattern in file2

Hi, I have 2 files that I have modified to basically match each other, however I want to determine what (if any) line in file 1 does not exist in file 2. I need to match column $1 and $2 as a single string in file1 to $1 and $2 in file2 as these two columns create a match. I'm stuck in an AWK... (9 Replies)
Discussion started by: right_coaster
9 Replies

10. UNIX for Dummies Questions & Answers

return previous line for pattern match

Hi, Need some idea on file processing, I have file like below, Processing al sources ... ...No value found : CHECK. Completed comparing all sources. Comparing schedulers... Processing al targets ... ...No value found : From above I need to extract the line where "No value... (4 Replies)
Discussion started by: braindrain
4 Replies
Login or Register to Ask a Question