Glad to explain what is going on in this code. Working thru and understanding is a great way to improve your awk skills.
Field separator RE [=\\][]
This is a simple bracket [] expression and matches any of the following characters as a field separator =, ] and [.
the ] character needs to be escaped in the RE to stop it being interpreted as a close bracket for the list.
We also need to escape the escape to stop the shell eating it up before it's passed to awk.
After the init section the two arrays are populated as follows:
The main use of keypos is to ensure the output is ordered the same as the want list.
If we just iterated thru keys[] the order is arbitrary and may change for different implementations of awk.
In prnsection() we use a for loop starting at i=1 and finishing when i is no longer in keypos ([icode]i in keypos[/code])
They key array is initialized to "MISSING" at the start and at each new section header.
$1 in keys { keys[$1]=$0 };
This code updates the key array when $1 (the part in front of the = sign) is in keys[].
The argument in awk server two purposes 1 is for input purposes the 2nd is to define local variables.
Actual arguments should be specified first followed by any local variables.
Here there are not arguments and i is simply a local variable to prnsection().
Its a good habit to always use local variables in functions unless there is a reason for them to be
global. Imagine if you had a for loop using a counter i and i was not local in prnsection(),
the i would be changed by the function call.
thanks for your explanation. I first though -F'[=\\][]' is multi delimiter too, but after run below command I lost.
I'm new to utilities like socat and netcat and I'm not clear if they will do what I need.
I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes.
I'm using Cygwin bash on Windows 10.
My... (3 Replies)
Hello all,
I am facing a weird issue while executing a code below -
#!/bin/bash
cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset
sh UKBA_publish.sh UKBA 28082015 3
if
then
echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below.
#masterscript.sh
./callingscript.sh
echo $fileExist
#callingscript.sh
echo "The script is called"... (2 Replies)
I am using blow script :--
#!/bin/bash
FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not
if
then
# echo "process found"
exit 0;
else
echo "process not found"
exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Hi guys
I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file.
#!/bin/sh
echo " $2 $3 $4 $5 $6 $7
isql -w400 -U$2 -S$5 -P$3 << xxx
use $4
go
print"**Changes to the table... (0 Replies)