Hi Gurus,
I have below requirement and have no idea how to achieve this.
the input file like below. there are multiple sections in file, each section has multiple lines. I need to find certain lines (value1, value2, value3 are key words for line searching) and generate another file. in some section, maybe some lines missing. for missing line, output "Missing"
My OS is SunOS 5.10 Generic_150400-64 sun4v sparc sun4v
expected output file like below:
thanks Yoda for your quick response. the code work with my sample data. it is my bad I didn't provide sample data correctly. the value1 , value2 and value3 don't have any relation. for example: CITY, REGION, STREET. I updated my post.
--- Post updated at 12:08 AM ---
Quote:
Originally Posted by Chubler_XL
And another awk approach:
thanks Chubler_XL for you quick response, the code works as I expected.
Hi Yoda,
I modify this code to match multiple pattern, it works fine. I have below question.
1. what's purpose of FS in this array. A[sc FS $1]. my understanding is when match find, then assign $0 to array A with index "section and $1".
2. is it possible using pattern match at below code value1, value2? in the file, this value are not same. for example:
there are some value like below: in this case, we consider these two city are same.
Hi Chubler_XL, thanks for your answer. it works fine. since I am relatively new for unix/awk scripting. I am not able to fully understand the code. below is my understanding about this code, some part I don't know how it works and have some questions. could you please review and give me brief explanation
Hi Chubler_XL, thanks for your answer. it works fine. since I am relatively new for unix/awk scripting. I am not able to fully understand the code. below is my understanding about this code, some part I don't know how it works and have some questions. could you please review and give me brief explanation
thanks in advance.
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.
This User Gave Thanks to Chubler_XL For This Post:
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)