Help Needed with AWK


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Help Needed with AWK
# 1  
Old 07-19-2011
Data Help Needed with AWK

I have a source file (sample below) that I'm trying to standarize into a text file with pipe delimited currently I'm looking at the file as space delimited....

Smilie I have one issue that I don't know how to handle - in the second set of " " is a filename along with the path - most cases that filename does not have any spaces - and I want to look at that field as 1 and not 5.

Source Record:
May 29 12:09:02 2011 28061] [ovis-ftp] OK DOWNLOAD: "11.111.22.33", "/ovis_ftp_test_file_DO_NOT_REMOVE.txt", 312 bytes, 32.83Kbyte/sec
May 29 09:09:06 2011 2578] [tukbr] OK UPLOAD: "222.22.111.1", "/PHX Volume Movemtent Reports 05.29.11.txt", 137149 bytes, 64.43Kbyte/sec

Target Record:
May|29|12:09:02|2011|28061]|[ovis-ftp]|OK|DOWNLOAD:|"11.111.22.33",|"/ovis_ftp_test_file_DO_NOT_REMOVE.txt",|312|bytes,| 32.83Kbyte/sec
May|29|09:09:06|2011|2578]|[tukbr]|OK|UPLOAD:|"222.22.111.1",|"/PHX|Volume|Movemtent|Reports|05.29.11.txt",|137149 bytes,|64.43Kbyte/sec

Any suggestions would be greatly appreciated.
Thanks

Last edited by DebDor; 07-19-2011 at 02:46 PM..
# 2  
Old 07-19-2011
could I suggest using a comma-delimiter to parse out the first four fields, and then apply split() against each field according to taste? This approach would allow you to apply a loop that can accommodate the variable contents in your $2 field...as well as the fixed layouts in fields $1, $3 and $4.
# 3  
Old 07-19-2011
Hmmm. You can't tell awk to split only into n fields. You could do this in awk but it'd be a mess of splitting on different variables and substitutions and might still have conditions that break it. But it's easy enough in shell:

Code:
while IFS=",: " read A B C D E F G H I J
do
        echo "$A|$B|$C|$D|$E|$F|$G|$H|$I|$J"
done < infile

shell has a FS-like variable called IFS, the read builtin will split on any character in that string.

If it runs out of variables to store in, it'll store everything remaining into the last variable, field separators included.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

awk - help needed please

Hi.. have a file as below, appreciate if someone can help on this 143|500| 10| 23353 22131 23355 23354 23358 23352 23357 23350 23349 23351| RAID5 213|1008| 9| 22419 22412 221 22413 22414 22416 22417 22415 22418| RAID6 1088|500| 5| 22243 22240 22244 22242 22241| RAID5 322|1200| 12|... (6 Replies)
Discussion started by: richard0@rediff
6 Replies

2. Shell Programming and Scripting

awk help needed

Hi Everyone, i have following in my file 1 2 3 4 5 6 . . 100 and now i want the output as 1 4 7 ..........so on..............97 100 (10 Replies)
Discussion started by: zozoo
10 Replies

3. Shell Programming and Scripting

awk help needed

Hi Experts, I have a file (file 1) with several columns and I need to create 2 files based on the data of 20th column of file 1. Criteria 1 : If the 20th field of file1 is empty , copy the entire records to file 2. I am successfully able to do this with the following awk code : awk... (2 Replies)
Discussion started by: nua7
2 Replies

4. Shell Programming and Scripting

awk help needed

Hi, i have input records as shown below. 4097,Probe3,G10,255,05/17/2011 12:44:03:185,NULL,05/17/2011 12:39:03:180,05/17/2011... (1 Reply)
Discussion started by: raghavendra.nsn
1 Replies

5. UNIX for Dummies Questions & Answers

help needed for awk

Dear all, I am new to use unix. I run the following command and got the error. Anyone knows how should I modify the command. Thanks a lot! $ for chr in 'seq 1 23'; do awk 'BEGIN {print "T","pheno";}{print "M",$2}' out_${chr}.map > dat_${chr}.dat; done error message:... (2 Replies)
Discussion started by: forevertl
2 Replies

6. Shell Programming and Scripting

Awk Help needed

hi, I have input file woth records as shown below OCSMRC_OK,7057348733,+0.00,0,18/05/2010 23:42:19,BellMobility,302610000918553,0006056099,B30,686505,686505,OCS_MRC,+49.14,0,0 ,0,0, OCSPPKB_NOK,4163460120,+1.25,0,18/05/2010... (4 Replies)
Discussion started by: raghavendra.cse
4 Replies

7. UNIX for Dummies Questions & Answers

Awk help needed

I have a log file monitor script that checks through a log file for a string. I use awk to search the log file, starting at the last checked line, for the specified string and then output the count and the last row number checked. The part of the script that does all the work is here: set --... (6 Replies)
Discussion started by: mglenney
6 Replies

8. Shell Programming and Scripting

help needed in awk

Hi , i have a file a.txt like this: far near veryfar toonear typeset var1=veryfar to extract the text between two strings i use the following command : awk '/far/,$veryfar/' a.txt its not working can nyone tell pls whats wrong in it ? i doubt can we use variable in awk like this... (3 Replies)
Discussion started by: santosh1234
3 Replies

9. Shell Programming and Scripting

awk help needed

How do I alter this command so that it prints only the second comma delimited field from line number 3? Secondly, how do you redirect the output to a variable called TEST? Thanks (cat BATCH007.TXT | awk 'BEGIN { FS = "," } ; {print $2 }') (5 Replies)
Discussion started by: ddurden7
5 Replies

10. Shell Programming and Scripting

awk help needed

I am trying to write a script that will parse out the e-mail address of a person from the name of a file in a directory. Example: filename is: /home/myname/first.middle.last@email.com.xls I want to extract just the email address and mail the file to that address. I want to send the... (6 Replies)
Discussion started by: Drenhead
6 Replies
Login or Register to Ask a Question