Splitting log files


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Splitting log files
# 1  
Old 03-08-2016
Splitting log files

I am trying to split my IRSSI logs into weekly and monthly .log files. My log format looks like this:

Code:
--- Day changed Fri Mar 04 2016
00:11 <Jack> Test
--- Day changed Sat Mar 05 2016
00:11 <Jack> Test 
--- Day changed Sun Mar 06 2016
15:20 <Jack> Test

The script I have been playing with that I am stuck on to split the logs looks like this:
Code:
grep -m 1 -n --regexp="^--- Day changed `date --date="$2" +"%a %b %d %Y"`$" $1 | cut -d ":" -f 1 | xargs -I '{}' tail --lines=+{} $1

$1 = The location of the .log file to split.
$2 = A date string, I use "1 day ago" as an example.

When I run this script it will create my #channel-weekly.log file but it is empty, it isn't splitting the x number of days I tell it to.

All help appreciated, thanks!

Also, thanks to all of the community members on this forum, it has helped me a lot in the past!
# 2  
Old 03-08-2016
To split the file it may help to observe that "weekly" means the part of the file from a certain day of week the next (same) day of week. Say, everything from with a "Fri" to the next "Fri". Similarly "monthes"" mean the parts of the file where the month part in the date lines: --- Day changed Fri Mar 04 2016 stays the same.

Here is some sample solution in KornShell doing the weekly split from Friday to Friday, you can do the same in awk, perl or any other text processing language with equal ease:

Code:
(( i = 1 ))
while read line ; do
     if print - "$line" | grep -q '^--- Day changed Fri' ; then
          outfile=out$(( i++ ))
     fi
     print - "$line" >> "$outfile"
done < /path/to/your/logfile

I hope this helps.

bakunin
This User Gave Thanks to bakunin For This Post:
# 3  
Old 03-08-2016
Thank you, I am now using awk to accomplish this task. This helped a lot, thank you!
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Automate splitting of files , scp files as each split completes and combine files on target server

i use the split command to split a one terabyte backup file into 10 chunks of 100 GB each. The files are split one after the other. While the files is being split, I will like to scp the files one after the other as soon as the previous one completes, from server A to Server B. Then on server B ,... (2 Replies)
Discussion started by: malaika
2 Replies

2. Shell Programming and Scripting

Splitting files into 100 files with field value

I want a script to split my file upon the last field (15) As file A,b,c,.......,01 C,v,n,.......,02 C,r,v,........,01 F,s,a,........,03 X,y,d,........,99 To make output 01.txt A,b,c,.......,01 C,r,v,........,01 02.txt C,v,n,.......,02 (12 Replies)
Discussion started by: teefa
12 Replies

3. Shell Programming and Scripting

Splitting files

Hello all I have a file which has around 80 million records, I want to split it to 12 equal files, I tried using the split command but it is allowing me to split according to number of lines or by size. Is there a way i can split the file into 12 files without worrying about the number of lines... (7 Replies)
Discussion started by: Sri3001
7 Replies

4. UNIX for Dummies Questions & Answers

Splitting Files Help

Hi Gurus, Lets say i have a file with some 30 records... How can i split that file into 3 files Also it shud be dynamic in the sense.. I wouldnt mind if file 1 has 15, file 2 has 10 and file 3 has 5.... Please help.. Thanks (6 Replies)
Discussion started by: saggiboy10
6 Replies

5. Shell Programming and Scripting

Splitting file into 2 files ?

Hi extending to one of my previous posted query .... I am using nawk -v invar1="$aa" '{print > ("ABS\_"((/\|/)?"A\_":"B\_")invar1"\_NETWORKID.txt")}' spfile.txt to get 2 different files based on split condition i.e. "|" Similar to invar1 variable in nawk I also need one more variable... (18 Replies)
Discussion started by: shekharjchandra
18 Replies

6. Shell Programming and Scripting

Splitting files from one file

Hi, I have an input file like: 111 abcdefgh asdfghjk dfghjkl 222 aaaaaaa bbbbbb 333 djfhfgjktitjhgfkg 444 djdhfjkhfjkghjkfg hsbfjksdbhjkgherjklg fjkhfjklsahjgh fkrjkgnj I want to read this input file and make separate output files with the header as numric value like "111"... (9 Replies)
Discussion started by: saltysumi
9 Replies

7. UNIX for Dummies Questions & Answers

splitting the files

Hi, I have some files with 2 million odd records which i need to split into chunks of 0.5 millions. I have the file sorted with a key column in order. The same key value can appear as 4 or 5 records in the file. Hence after splitting we are checking whether all the key values are present in the... (5 Replies)
Discussion started by: dnat
5 Replies

8. Shell Programming and Scripting

Splitting input files into multiple files through AWK command

Hi, I needs to split *.txt files from single directory depends on the some mutltiple input values. i have wrote the code like below for file in *.txt do grep -i -h "value1|value2" $file > $file; done. My requirment is more input values needs to be given in grep; let us say 50... (3 Replies)
Discussion started by: arund_01
3 Replies

9. UNIX for Advanced & Expert Users

splitting the files

Hi, How can i split the big file by the lines?. For eg. I wanna split the file from the line 140 to 1700. (9 Replies)
Discussion started by: sharif
9 Replies

10. Shell Programming and Scripting

splitting the files

Hi, I'am using HP-UX.I have a input file which has 102 drop statements in it.I'am using csplit to split the files.The upper limit is 99 only.I'am using the -n 102 option.It says "suffix size not vaild".Any suggestions how to do it using csplit? Thanx in advance, sounder. (1 Reply)
Discussion started by: sounder123
1 Replies
Login or Register to Ask a Question