03-07-2013
I'm just saying that for good code structure, especially in printf situaitons where a template bit matches a data argument, doing one at a time give you a virtual array of lines where the template is right by the data and any comment, one field a line, give or take the occasional adjacent series of constants.
At a higher level, put all or minority record types in separate subroutines, so the flow is simple to follow: writeHeader, while ... writeData, writeTrailer.
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hello,
I am trying to output the values in an array to a file. The output needs to be formated such that each array value is left jusified in a field 8 character spaces long. Also, no more than 6 fields on a line. For example:
@array= 1..14;
Needs to be output to the file like so:
1 ... (4 Replies)
Discussion started by: seismic_willy
4 Replies
2. Shell Programming and Scripting
Here is the code I'm using
{
printf("%11d %4.2f\% %4.2f\%\n", $1,$2,$3);
}
I want the output to look something like
1235415234 12.24% 52.46%
Instead it looks something like
319203842 42.27\%4.2f\%
How do I just print a "%" without awk or printf thinking I'm trying to do... (1 Reply)
Discussion started by: Awanka
1 Replies
3. Shell Programming and Scripting
Hi All,
Can anybody tell me why is there a "0" in my output of $date_today ?
#!/usr/local/bin/perl
$date_today = system "date '+%y%m%d'";
print "$date_today\n";
Output:
$ perl test4
080908
0 (3 Replies)
Discussion started by: Raynon
3 Replies
4. Shell Programming and Scripting
Hello,
I wrote a script that does lot of things, and I would like to change the format of a number but without printing it now (so I don't want to use printf as it will print the value immediately).
Schematically here is what I have:
awk 'BEGIN{number=0.01234567}
$1==$2{$3=number}... (5 Replies)
Discussion started by: jolecanard
5 Replies
5. Shell Programming and Scripting
Hi,
I am new to unix , I have a requirement for formating the input file and generate the output file as per the downstream requirement ..
My application receiving a text input file having 4 field and my application need to check each field and if some value of a field is blank ..then it need... (1 Reply)
Discussion started by: julirani
1 Replies
6. Shell Programming and Scripting
I want to print a string say "str1 str2 str3 str4" using printf.
If I try printing it using printf it is printing as follows.
output
-------
str1
str2
str3
str4
btw I'm working in AIX.
This is my first post in this forum :)
regards,
rakesh (4 Replies)
Discussion started by: enigmatrix
4 Replies
7. UNIX for Advanced & Expert Users
I have a print file taken from the print spooler and I want to delete all the formatting leaving only the text. If you vi the file it shows "\304\304 ...." which translates into a printed line on print output.
I need to be able to edit and pass this file to another process
Thnaks (10 Replies)
Discussion started by: petercp
10 Replies
8. Shell Programming and Scripting
Hi ,
I am facing error in perl
when I assign a below query in a varibale $query because of new line charchters
$query=
SELECT XYZ
, ABC
, c2
, c3
, c4
FROM t1
how can i get rid of new line charchters with out changing the... (2 Replies)
Discussion started by: gvk25
2 Replies
9. Shell Programming and Scripting
For example, in this command:
ls /etc/rc0.d/ -print
ls /etc/rc0.d/ -printfThe outputs are quite different, why? (7 Replies)
Discussion started by: Henryyy
7 Replies
10. Shell Programming and Scripting
# cat t.txt
2,3,4,5,A,2012-01-01 00:00:28
2,6,4,5,A,2012-01-02 00:00:28
2,7,4,5,A,2012-01-02 02:00:28
# awk -F"," '{OFS=",";print $2,"";printf("%s", strftime("%m%d%y",$6));printf("%s", strftime("%H%M%S \n",$6));print ("",$1)}' t.txt
3,
010170073332
,2
6,
010170073332
,2
7,... (3 Replies)
Discussion started by: before4
3 Replies
LEARN ABOUT DEBIAN
mail::mboxparser::mail::body
MboxParser::Mail::Body(3pm) User Contributed Perl Documentation MboxParser::Mail::Body(3pm)
NAME
Mail::MboxParser::Mail::Body - rudimentary mail-body object
SYNOPSIS
use Mail::MboxParser;
[...]
# $msg is a Mail::MboxParser::Mail
my $body = $msg->body(0);
# or preferably
my $body = $msg->body($msg->find_body);
for my $line ($body->signature) { print $line, "
" }
for my $url ($body->extract_urls(unique => 1)) {
print $url->{url}, "
";
print $url->{context}, "
";
}
DESCRIPTION
This class represents the body of an email-message. Since emails can have multiple MIME-parts and each of these parts has a body it is not
always easy to say which part actually holds the text of the message (if there is any at all). Mail::MboxParser::Mail::find_body will help
and suggest a part.
METHODS
as_string ([strip_sig => 1])
Returns the textual representation of the body as one string. Decoding takes place when the mailbox has been opened using the decode =>
'BODY' | 'ALL' option.
If 'strip_sig' is set to a true value, the signature is stripped from the string.
as_lines ([strip_sig => 1])
Sames as as_string() just that you get an array of lines with newlines attached to each line.
NOTE: When the body is actually some encoded binary data (most commonly such a body is base64-encoded), you can still use this method.
Then you wont really get proper lines. Instead you get chunks of binary data that you should concatenate as in
my $binary = join "", $body->as_lines;
If 'strip_sig' is set to a true value, the signature is stripped from the string.
signature
Returns the signature of a message as an array of lines. Trailing newlines are already removed.
$body->error returns a string if no signature has been found.
extract_urls
extract_urls (unique => 1)
Returns an array of hash-refs. Each hash-ref has two fields: 'url' and 'context' where context is the line in which the 'url' appeared.
When calling it like $mail->extract_urls(unique => 1), duplicate URLs will be filtered out regardless of the 'context'. That's useful
if you just want a list of all URLs that can be found in your mails.
$body->error() will return a string if no URLs could be found within the body.
quotes
Returns a hash-ref of array-refs where the hash-keys are the several levels of quotation. Each array-element contains the paragraphs of
this quotation-level as one string. Example:
my $quotes = $msg->body($msg->find_body)->quotes;
print $quotes->{1}->[0], "
";
print $quotes->{0}->[0], "
";
This should print the first paragraph of the mail-body that has been quoted once and below that the paragraph that supposedly is the
reply to this paragraph. Perhaps thus:
> I had been trying to work with the CGI module
> but I didn't yet fully understand it.
Ah, it is tricky. Have you read the CGI-FAQ that
comes with the module?
Mark that empty lines will not be ignored and are part of the lines contained in the array of $quotes->{0}.
So below is a little code-snippet that should, in most cases, restore the first 5 paragraphs (containing quote-level 0 and 1) of an
email:
for (0 .. 4) {
print $quotes->{0}->[$_];
print $quotes->{1}->[$_];
}
Since quotes() considers an empty line between two quotes paragraphs as a paragraph in $quotes->{0}, the paragraphs with one quote and
those with zero are balanced. That means:
scalar @{$quotes->{0}} - DIFF == scalar @{$quotes->{1}} where DIFF is element of {-1, 0, 1}.
Unfortunately, quotes() can up to now only deal with '>' as quotation-marks.
VERSION
This is version 0.55.
AUTHOR AND COPYRIGHT
Tassilo von Parseval <tassilo.von.parseval@rwth-aachen.de>
Copyright (c) 2001-2005 Tassilo von Parseval. This program is free software; you can redistribute it and/or modify it under the same
terms as Perl itself.
SEE ALSO
perl v5.12.3 2005-12-08 MboxParser::Mail::Body(3pm)