Sponsored Content
Top Forums Shell Programming and Scripting Feeding information in columns of LOG file Post 302575068 by nrjrasaxena on Sunday 20th of November 2011 07:25:30 AM
Old 11-20-2011
Hi,
There is some confusion. IT is working all fine, but somehow its changing the order of the text.
for example, here is the text in d*log file
Code:
=======using photon counter ======
tot pho is           = 419
nomatch pho is       = 20
phoeta pho is        = 19
nospike_counter is   = 19
et cut passed pho    = 10
ecal cut passed pho  = 10
hcal cut passed pho  = 9
trk cut passed pho   = 5
sieie cut passed pho = 4
hoe cut passed pho   = 11
pixsed cut passed pho= 14
phoID passed pho     = 1

wheres, I am getting following in the LOG file:
Code:
sieie cut passed pho = 4 4 8
phoID passed pho     = 1 1 2
ecal cut passed pho  = 10 10 20
pixsed cut passed pho= 14 14 28
hoe cut passed pho   = 11 11 22
hcal cut passed pho  = 9 9 18
tot pho is           = 419 419 838
phoeta pho is        = 19 19 38
et cut passed pho    = 10 10 20
nospike_counter is   = 19 19 38
trk cut passed pho   = 5 5 10
nomatch pho is       = 20 20 40

The script I am using is following:
Code:
#!/bin/bash                                                                                                                                                            
awk '/using photon counter/{p=12;next}                                                                                                                                 
p>0{                                                                                                                                                                   
        split($0,arr,"=")                                                                                                                                              
        h[$1"HDR"]=arr[1]                                                                                                                                              
        a[$1]=a[$1]" "$NF                                                                                                                                              
        sum[$1]+=$NF                                                                                                                                                   
        p--                                                                                                                                                            
}                                                                                                                                                                      
END{                                                                                                                                                                   
        for(i in a)                                                                                                                                                    
                print h[i"HDR"]"="a[i]" "sum[i]                                                                                                                        
}' *.log > LOG

The order is important for comparison..Smilie

pooja..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl: adding columns in CSV file with information in each

Hi Wise UNIX Crew, I want to add 3 different columns to the file in which: 1. The first new column pulls in today's date and time 2. Second column one has a '0' 3. Third column has the word 'ANY' going down the column If my file content is as follows: "7","a","abc",123"... (1 Reply)
Discussion started by: dolo21taf
1 Replies

2. UNIX for Dummies Questions & Answers

Routing a verbose information to a log file

Hi All, In the script mentioned below uses a sftp command to login to the remote host and pull the files from the remote server. we want to log this inf to a log file . But it is not happening, the verbose information is just displayed on the screen but not to the log file when I run this... (1 Reply)
Discussion started by: raghuveer2008
1 Replies

3. Shell Programming and Scripting

Extract information from Log file formatted

Good evening! Trying to make a shell script to parse log file and show only required information. log file has 44 fields and alot of lines, each columns separated by ":". log file is like: first_1:3:4:5:6:1:3:4:5:something:notinterested second_2:3:4:3:4:2 first_1:3:4:6:6:7:8 I am interested... (3 Replies)
Discussion started by: dummie55
3 Replies

4. Shell Programming and Scripting

extract information from a log file (last days)

I'm still new to bash script , I have a log file and I want to extract the items within the last 5 days . and also within the last 10 hours the log file is like this : it has 14000 items started from march 2002 to january 2003 awk '{print $4}' < *.log |uniq -c|sort -g|tail -10 but... (14 Replies)
Discussion started by: matarsak
14 Replies

5. Shell Programming and Scripting

Extract various information from a log file

Hye ShamRock If you can help me with this difficult task for me then it will save my day Logs : ================================================================================================================== ... (4 Replies)
Discussion started by: SilvesterJ
4 Replies

6. Shell Programming and Scripting

Grep'ing information from a log file on SUN OS 5

Hi Guys, I'm trying to write an script that will be launched by a user. The script will look at a log file and check for alerts with the date (supplied by user) and a machine's hostname (also supplied by the user). I'm trying to get the output formatted just like the log file. The logfile looks... (5 Replies)
Discussion started by: illgetit
5 Replies

7. Shell Programming and Scripting

Parsing text file and feeding it into an executable

Hello, everyone. I am working wtihin AIX 5.3, and I need to do the following: read the each line of file BASE.txt do XK {line contents} if XK's output begins with "BASE", then append line contents to file "output.txt" continue until end of file Here is what I tried(unsuccessfuly): ... (4 Replies)
Discussion started by: Mordaris
4 Replies

8. Shell Programming and Scripting

Remove lines with unique information in indicated columns

Hi, I have the 3-column, tab-separated following data: dot is-big 2 dot is-round 3 dot is-gray 4 cat is-big 3 hot in-summer 5 I want to remove all of those lines in which the values of Columns 1 and 2 are identical. In this way, the results would be as follows: dot is-big 2 cat... (4 Replies)
Discussion started by: owwow14
4 Replies

9. Shell Programming and Scripting

Include information in certain columns using grep and awk

HI all, I have data in a file that looks like this: 1 HOW _ NNP NNP _ 3 nn _ _ 2 DRUGS _ NNP NNP _ 3 nn _ _ 3 ACT _ NNP NNP _ 0 null _ _ 4 : _ ... (3 Replies)
Discussion started by: owwow14
3 Replies

10. Shell Programming and Scripting

Getting information out of a log file

Hello guys, I am trying to filter some information out of a log file (example shortcut) ===== fspCIV0 /vol/vol0 -sec=sys,rw=fspsanp42.net,root=fspsanp42.net,nosuid ===== fcvCIS01 /vol/ARDW -sec=sys,rw /vol/ARDW -sec=sys,rw /vol/ARDW -sec=sys,rw,nosuid /vol/ARDW -sec=sys,rw... (2 Replies)
Discussion started by: linux_scrub
2 Replies
cut(1)							      General Commands Manual							    cut(1)

Name
       cut - cut out selected fields of each line of a file

Syntax
       cut -clist [file1 file2...]
       cut -flist [-dchar] [-s] [file1 file2...]

Description
       Use  the  command to cut out columns from a table or fields from each line of a file.  The fields as specified by list can be fixed length,
       that is, character positions as on a punched card (-c option), or the length can vary from line to line and be marked with a  field  delim-
       iter character like tab (-f option).  The command can be used as a filter.  If no files are given, the standard input is used.

       Use to make horizontal ``cuts'' (by context) through a file, or to put files together in columns.  To reorder columns in a table, use and

Options
       list	   Specifies  ranges  that must be a comma-separated list of integer field numbers in increasing order.  With optional - indicates
		   ranges as in the -o option of nroff/troff for page ranges; for example, 1,4,7; 1-3,8; -5,10 (short for 1-5,10);  or	3-  (short
		   for third through last field).

       -clist	   Specifies character positions to be cut out.  For example, -c1-72 would pass the first 72 characters of each line.

       -flist	   Specifies  the  fields  to be cut out.  For example, -f1,7 copies the first and seventh field only.	Lines with no field delim-
		   iters are passed through intact (useful for table subheadings), unless -s is specified.

       -dchar	   Uses the specified character as the field delimiter.  Default is tab.  Space or other characters with special  meaning  to  the
		   shell must be quoted.  The -d option is used only in combination with the -f option, according to XPG3 and SVID2/SVID3.

       -s	   Suppresses  lines  with  no	delimiter  characters.	 Unless  specified, lines with no delimiters are passed through untouched.
		   Either the -c or -f option must be specified.

Examples
       Mapping of user IDs to names:
       cut -d: -f1,5 /etc/passwd
       To set name to the current login name for the csh shell:
       set name=`who am i | cut -f1 -d" "`
       To set name to the current login name for the sh, sh5, and ksh shells:
       name=`who am i | cut -f1 -d" "`

Diagnostics
       "line too long"	   A line can have no more than 511 characters or fields.

       "bad list for c/f option"
			   Missing -c or -f option or incorrectly specified list.  No error occurs if a line has fewer fields than the list  calls
			   for.

       "no fields"	   The list is empty.

See Also
       grep(1), paste(1)

																	    cut(1)
All times are GMT -4. The time now is 10:10 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy