Recursive header for email body


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Recursive header for email body
# 1  
Old 02-01-2018
Recursive header for email body

i have added the header also to the script you provided, it is working fine, but I am expecting to get the header over those rows for which the URL or port changes. URL will remain same for few rows and then it change, and once the URL change the header should come,
like in below input you can see the 3 record URL changed.so the header should populate over the third record(validate only server and port )


Code:
INPUT FILE:
http://xxx:7003/abc/protected/home.xhtml ,SKILLED LANGUAGE - ENTER CREDENTIALS ,You do not have skills or languages
http://xxx:7003/abc/protected/home.xhtml ,NOT KNOWN - NEW VALUE ,You do not have skills or languages
http://xxx:7005/abc/protected/home.xhtml ,SKILLED LANGUAGE - ENTER CREDENTIALS ,You do not have skills or languages

Code:
nawk -F, '
        BEGIN {
	        print "<html>"
                print "<body>"
                print "<table border=3>"        
                                print "<tr bgcolor=#85C1E9>"
                                print "<th>URL</th>"
                                print "<th>FUNCATIONALITY</th>"
                                print "<th>EERROR</th>"
                                print "</tr>"
        }
        {
                print "<tr>"
                for ( i = 1; i <= NF; i++ )
                {
                        if ( i == 2 )
                        {
                                sub ( /[^\/]*\//, X, $i )
                                sub ( /\//, X, $i )
                        }
                        print "<td>" $i "</td>"
                }
                print "</tr>"
        }
        END {
                print "</table>"
                print "</body>"
                print "</html>"
        }
                ' filename

Expected

Code:
--> Headed
http://xxx:7003/abc/protected/home.xhtml ,SKILLED LANGUAGE - ENTER CREDENTIALS ,You do not have skills or languages
http://xxx:7003/abc/protected/home.xhtml ,NOT KNOWN - NEW VALUE ,You do not have skills or languages

--> Header
http://xxx:7005/abc/protected/home.xhtml ,SKILLED LANGUAGE - ENTER CREDENTIALS ,You do not have skills or languages

# 2  
Old 02-01-2018
Try - although I'm afraid the result does not match your "Expected" -
Code:
awk -F, '
function HEADER()       {print "<tr bgcolor=#85C1E9>"
                         print "<th>URL</th>"
                         print "<th>FUNCATIONALITY</th>"
                         print "<th>EERROR</th>"
                         print "</tr>"
                        }

        BEGIN {
        print "<html>"
                print "<body>"
                print "<table border=3>"
        }
        {
         if ($1 != LASTURL)     {HEADER()
                                 LASTURL = $1
                                }
                print "<tr>"
                for ( i = 1; i <= NF; i++ )
                {
                        if ( i == 2 )
                        {
                                sub ( /[^\/]*\//, X, $i )
                                sub ( /\//, X, $i )
                        }
                        print "<td>" $i "</td>"
                }
                print "</tr>"
        }
        END {
                print "</table>"
                print "</body>"
                print "</html>"
        }
                ' file

This User Gave Thanks to RudiC For This Post:
# 3  
Old 02-02-2018
Quote:
Originally Posted by RudiC
Try - although I'm afraid the result does not match your "Expected" -
Code:
awk -F, '
function HEADER()       {print "<tr bgcolor=#85C1E9>"
                         print "<th>URL</th>"
                         print "<th>FUNCATIONALITY</th>"
                         print "<th>EERROR</th>"
                         print "</tr>"
                        }

        BEGIN {
        print "<html>"
                print "<body>"
                print "<table border=3>"
        }
        {
         if ($1 != LASTURL)     {HEADER()
                                 LASTURL = $1
                                }
                print "<tr>"
                for ( i = 1; i <= NF; i++ )
                {
                        if ( i == 2 )
                        {
                                sub ( /[^\/]*\//, X, $i )
                                sub ( /\//, X, $i )
                        }
                        print "<td>" $i "</td>"
                }
                print "</tr>"
        }
        END {
                print "</table>"
                print "</body>"
                print "</html>"
        }
                ' file

IT worked perfect , but please explain this piece of code how it understand this is next or new URL
Code:
 if ($1 != LASTURL)     {HEADER()
                                 LASTURL = $1


Last edited by mirwasim; 02-02-2018 at 10:49 AM..
# 4  
Old 02-02-2018
You can read it like prose:
"If this line's first field does not equal the last valid URL, then print the header and retain field 1 as the new last valid URL"
This User Gave Thanks to RudiC For This Post:
# 5  
Old 02-03-2018
Quote:
Originally Posted by RudiC
You can read it like prose:
"If this line's first field does not equal the last valid URL, then print the header and retain field 1 as the new last valid URL"
Dear there is a small problem i now noticed. actually when all the URLS are same then it work my URLs are changing , i mean it has different tab values like below
But all url start with http:// and end with .xhtml
can we do any minor change to achieve it

Code:
http://ad123:2015/see/protected/house.xhtml               
http://ad123:2015/see/protected/Profile.xhtml              
http://ad1234:2015/see/protected/meeting.xhtml

we can resolve this issue if we can decrease size of URL to http://ad1234:2015/see/. Because this will meet the code condition a

Last edited by mirwasim; 02-03-2018 at 02:24 PM..
# 6  
Old 02-03-2018
Sorry?
# 7  
Old 02-03-2018
Quote:
Originally Posted by RudiC
Sorry?
sorry to say Smilie
if we can reduce the URL length in same code we can achieve the result Smilie
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Mutt command email body

Hi Team, While sending the email using the mutt command, mail body not appearing properly and attachment it is showing without line breaks and i used the CSS Style (nowrapper )it is working fine. in this case how to handle the email body, please help me. (1 Reply)
Discussion started by: bmk123
1 Replies

2. Shell Programming and Scripting

Sendmail with header and footer logo in HTML body

Hello, I need help with my script that will send email via sendmail command that will shows both the header and footer logo once the recepient receive the email (e.g. MS Outlook). When I tested to ran the script it will successfully send the email BUT UNFORTUNATELY it doesn't displayed the... (8 Replies)
Discussion started by: lawrence88
8 Replies

3. Shell Programming and Scripting

awk print the body of an email

I have fetched a couple of emails and stored then in /fetch/mail/oracle.txt, the displayed content is Date: From: Subject: To: Content-Type: ---body ----- --------- Date: From: Subject: To: Content-Type: ----body ----- ------ Date: From: I want to retrieve the body only from... (3 Replies)
Discussion started by: maddog21
3 Replies

4. Shell Programming and Scripting

issue with Email Body

Hi, I have written shell program to send email as below - #!/bin/ksh filename=`ls -ltrh *.Z` echo $filename |mailx -s "FOR TESTING" rahul.b@infotech.net I am getting the email but email body is - -rw-rw-r-- 1 bahulra dba 173M Mar 22 04:37 corphist.txt.Z -rw-rw-r-- 1 bahulra dba 107M... (3 Replies)
Discussion started by: rahulbahulekar
3 Replies

5. Shell Programming and Scripting

Crontab issue: getting email but with out body

I have a oracle sh script test.sh #!/bin/bash R=`sqlplus -S *****/*********@dfsdf <<ENDOFSQL set serveroutput on size unlimited; execute DBMS_SNAPSHOT.REFRESH( '"MIS_ADMIN"."MV_SURVEY_UNITS_CENSUS"','F'); execute DBMS_SNAPSHOT.REFRESH( '"MIS_ADMIN"."MV_SURVEY_UNITS_CENSUS_PART"','F');... (1 Reply)
Discussion started by: ramkia6
1 Replies

6. UNIX for Dummies Questions & Answers

Sending email with attachment and body

Hi I want to able to attach a file to a email and send it with a body the body of the email is within the "body" file, and the attachment in "atch" if i send like below it will send the email correctly /usr/sbin/sendmail me@you.com< body And when i send the attachment alone... (3 Replies)
Discussion started by: sridanu
3 Replies

7. Shell Programming and Scripting

The body of the Email -- mailx

Hi, I am using mailx command to send an email and i took the body of the email from a file, mailx -r gtt.org -s "Status Report " ss@org.com < $ProcessStatisticsFile but now i want to declare the body of the email in the command itself. I have tried with the following command but... (4 Replies)
Discussion started by: chinnu01
4 Replies

8. Shell Programming and Scripting

mailx requirement - email body header in bold and data content in normal text

Dear all- I have a requirement to send an email via email with body content which looks something below- Email body contents -------------------- RequestType: Update DateAcctOpened: 1/5/2010 Note that header information and data content should be normal text.. Please advice on... (5 Replies)
Discussion started by: sureshg_sampat
5 Replies

9. Shell Programming and Scripting

emailing as body of email

hi all, how do i email a file in the body of an email rather than as an attachment ?? have a ksh script which i need to read a file and email as part of the body rather than an attachment. my code is : uuencode file.log | mailx -s "test" but this sends file as an attachment. ... (2 Replies)
Discussion started by: cesarNZ
2 Replies

10. Shell Programming and Scripting

how to check body of the email

Dears, i have user called dellsh i hope to make this script when this user recieve email check the budy of the email about (StatusRequest) when i find this email contain this subject run crontab do this job (create file in my home directory called index) thanks for your attention (1 Reply)
Discussion started by: dellsh
1 Replies
Login or Register to Ask a Question