[Jprogramming] awk-like J sentences?

David Lambert b49p23tivg at stny.rr.com
Sat Feb 15 14:52:01 UTC 2014


awk automatically splits data into records, records into fields.
awk automatically chooses data type string or numeric by expression context.
awk variables have default values of empty string (or zero in numeric context).
awk programs can be entered on the command line.

Hence, to be more effective than awk you'd need to write a j command shorter than

gawk -F\; '{print $1+$2}'

The j program will need to find the first two fields on each line, convert strings to numeric type, evaluate and show the sum, and finally exit 0 .  If I wrote the program I'd either need to append '0;0' to lines or pepper the code with adverse adjectives.  None of these steps are long in j, and I'm sure will fit onto the command line.

gawk is the best tool I know of for many "reform document" tasks.

With apologies to those who don't read bash, here's a complete example.  Replace  gawk -F\; '{print $1+$2}'  with your j command.  For fair comparison, the j command will be similar to
$ jconsole -js 'exit 0[echo 2*98'
Because of aliases, including a standard script to preload awk definitions is reasonable.
  
$ gawk -F\; '{print $1+$2}' <<EOF
> 1 ; 2 ;  line 1   BEGIN{ FS=";" }{print $1+$2}
> 4;7; some other ; text
> 9
>
> 8 ;
> EOF
3
11
9
0
8
$

>Date: Fri, 14 Feb 2014 21:51:32 -0500
>From: Lee Fallat <ircsurfer33 at gmail.com>
>To: programming at jsoftware.com
>Subject: [Jprogramming]  awk-like J sentences?
>Message-ID:
>	<CAKzHxzFvAPQ56dNMSNXW6fQVfz7f__5BwDTKns+ut5vb7SBVNQ at mail.gmail.com>
>
>BEGIN { FS=";" }
>{ print $1+$2 }



More information about the Programming mailing list