In ksh script what is this BEGIN and END in this function?


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting In ksh script what is this BEGIN and END in this function?
# 1  
Old 06-17-2015
In ksh script what is this BEGIN and END in this function?

Can Someone please explain why BEGIN and END statement is used inside function? How does that help in scripting?

Code:
function fileformatting
{
  CleanupMask="xXxX"

  sed 's/^.//' < ${AllFile} > ${AllFile}.tmp
  echo $(wc -l ${AllFile}.tmp)
       `awk -v CleanupMask=${CleanupMask} '
BEGIN { ; }
{

        inputstr=$0
        Num_Before_Clean_Mask = match(inputstr,CleanupMask)
        Num_After_Clean_Mask = Num_Before_Clean_Mask + 4
        DataString = substr(inputstr, Num_After_Clean_Mask)

        if (Num_Before_Clean_Mask != 0) print DataString

}

END { ; }
' ${AllFile}.tmp > ${AllFile} `

echo $(wc -l ${AllFile})
}

# 2  
Old 06-17-2015
BEGIN and END are part of an awk script: called within the fileformatting ksh function:

as they contain no statements they could be removed e.g:
Code:
awk -v CleanupMask=${CleanupMask} '
{

        inputstr=$0
        Num_Before_Clean_Mask = match(inputstr,CleanupMask)
        Num_After_Clean_Mask = Num_Before_Clean_Mask + 4
        DataString = substr(inputstr, Num_After_Clean_Mask)

        if (Num_Before_Clean_Mask != 0) print DataString

}' ${AllFile}.tmp > ${AllFile}

In an awk script the BEGIN section runs once before any input is processed (e.g. to print file headers).
The END section is run once after all the input files have been processed (e.g. printing totals).
This User Gave Thanks to Chubler_XL For This Post:
# 3  
Old 06-17-2015
Quote:
Originally Posted by Chubler_XL
Code:
}' ${AllFile}.tmp > ${AllFile}

That will fail if $AllFile contains whitespace.
Code:
}' "$AllFile.tmp" > "$AllFile"

This User Gave Thanks to cfajohnson For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Search ad replace using begin and end of the file

Hello Friends , Please help to create script for compare and replace if not matches of set of lines . * Primary* Servername Server1 Location R201 Rack 4 *End Primary* *Secondary* Server Name Server1 IPAddress 10.24.30.10 Application Apache *End of Secondary* Above... (4 Replies)
Discussion started by: rnary
4 Replies

2. Shell Programming and Scripting

BEGIN and END format in awk

I'm new to awk, trying to understand the basics. I'm trying to reset the counter everytime the program gets a new file to check. I figured in the BEGIN part it would work, but it doesn't. #!/bin/awk -f BEGIN {counter=0} { sum=0 for ( i=1; i<=NF;... (1 Reply)
Discussion started by: guitarist684
1 Replies

3. Shell Programming and Scripting

Begin/End blocks in awk: confused

I am trying to understand how to use the END block in awk without much success. I have this script that I found: gawk '{count++; keyword = $1} if (count == 3) keyword = "order this" else print keyword " " k } }' << orderfile Is that the way that the END block should be used? I am... (6 Replies)
Discussion started by: newbie2010
6 Replies

4. Shell Programming and Scripting

Get the sum of values in between begin and end in the file

Hi All, test file Begin Script Run at Thu Mar 14 09:24:16 PDT 2013 tst_accounts: ws zip: WS_out_20130313.tar.gz dat: test_20130313.dat count: 63574 loaded: xx pre-merge: xx post-merge: xx timestamp: Thu Mar 14 09:30:42 PDT 2013 tst_accounts: ws zip: WS_out_20130313.tar.gz dat: s_20130313.dat... (6 Replies)
Discussion started by: bmk
6 Replies

5. Programming

search a file between two begin and end strings in c

Can any one help me out with following problem... I want to search in a file which has two strings repeat each time(like start and end) i want to search between these two string in C programming. please help me with the solution. thanks in advance. (8 Replies)
Discussion started by: uday.sena.m
8 Replies

6. UNIX for Dummies Questions & Answers

Dump to another file for a begin and end Pattern

Hi All , I am newbie to linux shell scripting , below are the contents of my log file , i want the lines between a begin pattern and a end pattern for an instance , my begin Pattern is "Transaction Begins for Usr" and end pattern is "Transaction Ends for Usr" into another file Sample file... (1 Reply)
Discussion started by: SARAVANANE
1 Replies

7. Shell Programming and Scripting

Use of Begin IF ,END IF END not working in the sql script

Hi I have written a script .The script runs properly if i write sql queries .But if i use PLSQL commands of BEGIN if end if , end ,then on running the script the comamds are getting printed on the prompt . Ex :temp.sql After connecting to the databse at the sql prompt i type... (1 Reply)
Discussion started by: isha_1
1 Replies

8. Shell Programming and Scripting

begin end detection

Hi all, i am new to scripting. i need to write a code to detect begin and end of word that either begins or ends with t,th,d,dh,s,sh i have a set of words in a file containg one word per line. let the filename be aaa.txt. i have an another file bbb.txt which has two lines, just specifying the... (7 Replies)
Discussion started by: blkanth
7 Replies

9. Shell Programming and Scripting

BEGIN END questions

Why would you need to use this in a script? Why can't you just use print to print out what you want printed in the begining and print for what you want at the end. So this: nawk 'BEGIN {print "this is the first line"} {print $1 $2 $3} {print $5 $6} END {print "this is the last line"}' ... (2 Replies)
Discussion started by: llsmr777
2 Replies

10. Shell Programming and Scripting

import var and function from ksh script to another ksh script

Ih all, i have multiples ksh scripts for crontab's unix jobs they all have same variables declarations and some similar functions i would have a only single script file to declare my variables, like: var1= "aaa" var2= "bbb" var3= "ccc" ... function ab { ...} function bc { ... }... (2 Replies)
Discussion started by: wolfhurt
2 Replies
Login or Register to Ask a Question