Help with shell script in formatting the records.


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help with shell script in formatting the records.
# 1  
Old 02-24-2010
Help with shell script in formatting the records.

I have a text file in the following format. can any one please help me in printing the output in userfriendly format mentioned below.

Input.
Code:
1) /ss/abc/1/w/s/domainname/abc1/logname/
########error###################
########error###################
########error###################
2)/ss/abc/1/w/s/domainname/abc1/logname/
3)/ss/abc/1/w/s/domainname/abc1/logname/
4)/ss/abc/1/w/s/domainname/abc1/logname/
########error#######################
5)/ss/abc/1/w/s/domainname/abc1/logname/

Output
Code:
header1  h2      h3     h4   h5    h6            h7     h8       error
ss       abc     1      w    s     domainname    abc1   logname  ###err##
 
ss       abc     1      w    s     domainname    abc1   logname


Last edited by Scott; 02-24-2010 at 05:02 PM.. Reason: Please use code tags
# 2  
Old 02-24-2010
Here is a Bourne script, someone who knows awk may write something more elegant, I'm not sure if your output of only two lines is intentional, I have taken that as not intentional and assumed that you want the lines with a number at the beginning but you only want the error lines mentioned once in conjunction with the preceding numbered Line.

I made the input file contain a different abc number per line so that we can prove which lines have been displayed:
Code:
cat record_files.txt
1) /ss/abc/1/w/s/domainname/abc1/logname/
########error###################
########error###################
########error###################
2)/ss/abc/1/w/s/domainname/abc2/logname/
3)/ss/abc/1/w/s/domainname/abc3/logname/
4)/ss/abc/1/w/s/domainname/abc4/logname/
########error#######################
5)/ss/abc/1/w/s/domainname/abc5/logname/
$

The script is:
Code:
$ cat record_files.sh
#!/bin/sh

SAVEDLINE=""
echo "header1\th2\th3\th4\th5\th6\t\th7\terror"
while read LINE; do

  ERRORTEST=`echo "${LINE}" | awk -F"/"  '{ print $1 }' | grep "##error##"`
  BRACKETTEST=""
  if [ -n "${ERRORTEST}" -a -n "${SAVEDLINE}" ]; then
    echo "${SAVEDLINE}\t###err##"
    SAVEDLINE=""
  elif [ -n "${SAVEDLINE}" ]; then
    echo "${SAVEDLINE}"
    SAVEDLINE=""
  else
    BRACKETTEST=`echo "${LINE}" | awk -F"/"  '{ print $1 }' | grep ")"`
  fi

  if [ -n "${BRACKETTEST}" ]; then
    SAVEDLINE=`echo "${LINE}" | awk -F"/"  '{ print $2 "\t" $3 "\t" $4 "\t" $5 "\t" $6 "\t\t" $7 "\t" $8 }'`
  fi

done < record_files.txt

if [ -n "${SAVEDLINE}" ]; then
  echo "${SAVEDLINE}"
fi
$


Here is a run of the script:
Code:
$ ./record_files.sh
header1    h2    h3    h4    h5    h6            h7      error
ss         abc   1     w     s     domainname    abc1    ###err##
ss         abc   1     w     s     domainname    abc2
ss         abc   1     w     s     domainname    abc4    ###err##
ss         abc   1     w     s     domainname    abc5
$

If my assumptions are wrong then please say so...

Last edited by TonyFullerMalv; 02-24-2010 at 06:57 PM..
# 3  
Old 02-24-2010
Hi Tony,


Thanks a ton for your help.
Actually I am getting a log file every day. From that log file i am taking the errors and sending a mail . Now i want to send the errors in a user friendly format.

Code:
logfiles=`find /net/$1/logs -mtime 0 -name os.log |egrep -v archive`;
errStr="ERROR"
newErrFile="$1_temp.log"
rm -f $newErrFile
for logfile in $logfiles ; do
if [[ -s $logfile ]] then
print "\n\n******* $logfile ********\n" >> $newErrFile
perl cer.pl $logfile $errStr >> $newErrFile
fi
done

Now i want to generate user friendly format for newErrFile which is like this
Code:
/abc/aa/cc/dd/ee/ff/gg/hh/

/abc/bb/cc/dd/ee/ff/gg/hh

/abd/bb/cc/dd/ee/ff/gg/hh

###errorr###
####multiple lines of error(for some records no error)

again the records.

Last edited by Scott; 02-24-2010 at 08:22 PM.. Reason: Code tags please...
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Need some help in formatting answer of shell script

Dear all, I am new to shell scripting and have tried to make a small program for fun sake that tells age from the last number of cell phone and birth year. At the end we get a final 3 digit number and the first digit represents the last digit of cell phone and rest 2 numbers shows age. eg. 423... (4 Replies)
Discussion started by: stg44
4 Replies

2. Shell Programming and Scripting

Formatting a file using shell script

Hi, Please find the below lines of a file B1/OT "GIB10" 837 130308 1351 MONORONOUS DIGI PATH FAULT SUPER B1/OT "GIB10" 520 130418 1537 MONORONOUS DIGI PATH FAULT SUPER B1/XT "GIB10" 762 130421 0653 TV Y-CEIVER ADMIN RXOCF-62 241_OKEBOLE_NEW 1 B1/XT "GIB10" 385 130425 1931 TV Y-CEIVER... (2 Replies)
Discussion started by: Ardhendu
2 Replies

3. Shell Programming and Scripting

Formatting File Using Shell Script

Hi Team, We have a requirement where we need to format input file using shell script by meeting the below conditions. 1. 1. Ignore first 549 characters of that file. 2. 2. After that we need to make a file of 100 characters per line, repeat it until the 3rd ... (16 Replies)
Discussion started by: ataneja7
16 Replies

4. Shell Programming and Scripting

formatting a shell script

there is one shell which calls for different sql scripts. output of different are formatted in frame like structure.i want columnar wise formatting to be done in such a manner that output of one sql may be comon input of rest sqls . ERC DML Closure Date ER DML SAP Transfer Date ... (0 Replies)
Discussion started by: arc
0 Replies

5. Shell Programming and Scripting

Formatting a file using shell script

I have a file with contents something similar to as below : SVCNAME,12m-1a,1a-2a,2a-3a,3a-4a,5a-6a,6a-7a,7a-8a,8a-9a,9a-10a,10a-11a,11a-12n,12n-1p,13p-14p,14p-15p,15p-16p,16p-17p,17p-18p,18p-19p,19p-20p,20p-21p,21p-22p,22p-23p,11p-12m, TOTALS... (5 Replies)
Discussion started by: deo_kaustubh
5 Replies

6. Shell Programming and Scripting

Date formatting in shell script

Hi, I am writing a script and I need to calculate last weeks date. I get the current date as; today=`date '+%Y%m%d'` and I need last week inthe same format. Thanks, (2 Replies)
Discussion started by: ozum
2 Replies

7. Shell Programming and Scripting

Formatting the text file using shell script

How to add the filename to end of each line with | as seperator, except first and last line of the file(s) in directories(with diff tree structure) using shell script?. And also how to replace a list of strings with another set of strings, which is present in a file?. Kindly help out on... (1 Reply)
Discussion started by: av_vinay
1 Replies

8. Shell Programming and Scripting

formatting a file using shell script

Hi I have to do the following.I have to format a file test.t The contents are # Header 1231 xyz asdf asdapsdcsd //string1 = "pqrs" //string1 = "abcd"; //info //string1 = "*pqrs"; //add string1 = "#123"; //sub //string1 = "#1234567890" data = check(string1) //string1 = "#1234567890"... (12 Replies)
Discussion started by: gopsman
12 Replies

9. UNIX for Advanced & Expert Users

Date Formatting in Shell Script

Hi, Can anybody throw somelight on how to handle date in a shell script? I need to pass the date in this format 'yymmdd' and then pad it to a file. The way in which i've handled is given below, but the date is not getting passed rather the file is getting created with a null date. Any... (2 Replies)
Discussion started by: Isiva
2 Replies

10. Shell Programming and Scripting

Formatting lines in shell script

I have a file with the below lines 1521 1522 1523 1524 1525 1526 ... 174 lines all numbers like above. I want the above file to appear as below. 1521,1522,1523,1524..... All the numbers should be separated by comma. Pls tell me how to do this .... Thanks in advance. (8 Replies)
Discussion started by: dreams5617
8 Replies
Login or Register to Ask a Question