Re: can you help about this script



Hi Giorgos

Thank you

But my output is from your suggstion
printf "Created: %s\n", system("date +%Y%m%d");

20071122
Created: 0
20071122
Updated: 0

how can I have output as

Created: 20071122
Updated: 20071122

In additon,

ls it possible to have loop output also?

I need to have

print "File No:", CMA001

the second record is CMA002 and then CMA003 for the
3rd record

awk -f program.awk record.txt

Thank you again






--- Giorgos Keramidas <keramida@xxxxxxxxxxxxxxx>
wrote:

On 2007-11-21 12:26, ann kok <annkok2001@xxxxxxxxx>
wrote:
Hi all
how command "date, hostname" run in awk program?

awk -F program.awk file.txt

You don't use backticks... These are a feature of
the shell, and
running a script through progname.awk is no longer a
shell session.

Try system("date") in your awk(1) script:

program.awk

BEGIN { RS = "\n" ; FS = "|" }

{
print "Name:", $9
print "Created: `date`"
print "from: `hostname`"
print ""
}


BEGIN {
RS ="\n";
FS = "|";
}

{
printf "Name: %s\n", $9;
printf "Created: %s\n",
system("date");
printf "From: %s\n",
system("hostname");
}

Running system("hostname") once for each file may be
horribly
inefficient, though. If I were you, I'd write this
as a *shell* script,
which runs "hostname" once, stashes the result away
in a variable, and
reuses it all the time.

Running "date" may be a bit less efficient than
something like
gettimeofday(). Perl has a gettimeofday() function
in the Time::HiRes
module, so it may be worth investigating if that may
speed things up a
bit more.

A completely untested first try to do something like
this is ...

#!/usr/bin/perl -w

use strict;

use POSIX qw(strftime);
use Time::HiRes qw(gettimeofday);

my $hostname = `hostname`;
my $line;
while (defined($line = <STDIN>)) {
chomp $line;
my @fields = split /|/, $line;
if ($#fields >= 0) {
my ($seconds, $microseconds)
= gettimeofday();
printf "Name: %s\n",
$fields[8];
printf "Created: %s\n",
strftime("%Y-%m-%d
%H:%M:%S", gmtime($seconds));
printf "From: %s\n",
$hostname;
}
}



--- Giorgos Keramidas <keramida@xxxxxxxxxxxxxxx>
wrote:

On 2007-11-21 12:26, ann kok <annkok2001@xxxxxxxxx>
wrote:
Hi all
how command "date, hostname" run in awk program?

awk -F program.awk file.txt

You don't use backticks... These are a feature of
the shell, and
running a script through progname.awk is no longer a
shell session.

Try system("date") in your awk(1) script:

program.awk

BEGIN { RS = "\n" ; FS = "|" }

{
print "Name:", $9
print "Created: `date`"
print "from: `hostname`"
print ""
}


BEGIN {
RS ="\n";
FS = "|";
}

{
printf "Name: %s\n", $9;
printf "Created: %s\n",
system("date");
printf "From: %s\n",
system("hostname");
}

Running system("hostname") once for each file may be
horribly
inefficient, though. If I were you, I'd write this
as a *shell* script,
which runs "hostname" once, stashes the result away
in a variable, and
reuses it all the time.

Running "date" may be a bit less efficient than
something like
gettimeofday(). Perl has a gettimeofday() function
in the Time::HiRes
module, so it may be worth investigating if that may
speed things up a
bit more.

A completely untested first try to do something like
this is ...

#!/usr/bin/perl -w

use strict;

use POSIX qw(strftime);
use Time::HiRes qw(gettimeofday);

my $hostname = `hostname`;
my $line;
while (defined($line = <STDIN>)) {
chomp $line;
my @fields = split /|/, $line;
if ($#fields >= 0) {
my ($seconds, $microseconds)
= gettimeofday();
printf "Name: %s\n",
$fields[8];
printf "Created: %s\n",
strftime("%Y-%m-%d
%H:%M:%S", gmtime($seconds));
printf "From: %s\n",
$hostname;
}
}





____________________________________________________________________________________
Be a better pen pal.
Text or chat with friends inside Yahoo! Mail. See how. http://overview.mail.yahoo.com/
_______________________________________________
freebsd-questions@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-questions
To unsubscribe, send any mail to "freebsd-questions-unsubscribe@xxxxxxxxxxx"



Relevant Pages

  • Re: can you help about this script
    ... hostname" run in awk program? ... running a script through progname.awk is no longer a shell session. ...
    (freebsd-questions)
  • Further sh(1) plans
    ... My main focus with shis to improve it as a scripting shell. ... language and features to help script writers. ... fragile and non-portable echo commands by making printf much slower ... make search order for builtins more compliant (special builtins cannot ...
    (freebsd-arch)
  • Re: Newbie Variable Question
    ... So in my script, I ... Whether or not your shell supports printf is irrelevant. ... If the OP wants to populate a variable, ...
    (comp.unix.shell)
  • Re: incorrect value for HOSTNAME executed as cron job
    ... > When I executed the script manually from the shell it obtain correct ... > the cron the perl obtain incorrect value, ... You could obtain the hostname by the hostname command, ...
    (comp.lang.perl.misc)
  • Re: its not the school home work
    ... In shell on Unix you can convert from a hex string to a decimal ... I'm just interested in a shell script that works, ... printf "\nEnter number to be converted: ... The conversion results are: ...
    (comp.unix.shell)