Visit Our UNIX and Linux User Community


Help understanding a script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help understanding a script
# 1  
Old 10-05-2009
Help understanding a script

Hello everybody,

Can anybody tell me of what "~" refers to in the below code snippet.

Code:
 
lsvg $vgNAME | awk 'BEGIN {freeDISK=1} {if (($4 ~ /PP/ && $5 ~ /SIZE/) || ($4 ~ /FREE/ && $5 ~ /PPs/)) {freeDISK *= $6 }} END {print freeDISK*1024 }'

Thanks in advance,
# 2  
Old 10-05-2009
Quote:
Originally Posted by tenderfoot
Hello everybody,

Can anybody tell me of what "~" refers to in the below code snippet.

Code:
 
lsvg $vgNAME | awk 'BEGIN {freeDISK=1} {if (($4 ~ /PP/ && $5 ~ /SIZE/) || ($4 ~ /FREE/ && $5 ~ /PPs/)) {freeDISK *= $6 }} END {print freeDISK*1024 }'

Thanks in advance,
Code:
it mean if the field ($4 or $5) contain the pattern in /pattern/

ex:-
($4 ~ /PP/ && $5 ~ /SIZE/ # means if $4 contains (or include) the word  PP and $5 
contains (or include) the word "SIZE"


BR

# 3  
Old 10-05-2009
in awk version, ~ means equal to

here it says, if column4=PP and column5=SIZE or column4=FREE and column5=PPs then...
# 4  
Old 10-05-2009
Thanks so much.. ahmad.diab and Amit.Sagpariya

If I got it right, in awk "~" mean "="

and otherwise "~" = "home directory"

Please let me know.
# 5  
Old 10-05-2009
In Awk ~ does not mean =

The (AIX) man page puts it like this:

Quote:
~,!~
Signifies a conditional statement that a specified variable matches (tilde) or does not match (tilde, exclamation point) the regular expression.
Quote:
ahmad.diab:
it mean if the field ($4 or $5) contain the pattern in /pattern/
# 6  
Old 10-05-2009
Quote:
Originally Posted by Amit.Sagpariya
in awk version, ~ means equal to

here it says, if column4=PP and column5=SIZE or column4=FREE and column5=PPs then...
No, that's not correct.
'man nawk' yields:
Code:
     expr ~ expr       ERE match                  numeric            none
     expr !~ expr      ERE non-match               numeric           none
....

     A regular expression can be matched against a specific field
     or  string by using one of the two regular expression match-
     ing operators, ~ and !~.  These  operators  interpret  their
     right-hand  operand  as a regular expression and their left-
     hand operand as a string. If the regular expression  matches
     the  string,  the ~ expression evaluates to the value 1, and
     the !~ expression evaluates to the value 0. If  the  regular
     expression  does  not  match  the  string,  the ~ expression
     evaluates to the value 0, and the !~ expression evaluates to
     the  value  1.  If  the right-hand operand is any expression
     other than the lexical token ERE, the string  value  of  the
     expression is interpreted as an extended regular expression,
     including the escape  conventions  described  above.  Notice
     that  these  same escape conventions also are applied in the
     determining the value of a string literal (the lexical token
     STRING),  and is applied a second time when a string literal
     is used in this context.

# 7  
Old 10-05-2009
I got it now...

Thanks so much..

Previous Thread | Next Thread
Test Your Knowledge in Computers #945
Difficulty: Medium
A Fraggle attack is a variation of the Smurf attack where an attacker sends a large amount of UDP traffic to ports 7 (Echo) and 19 (CHARGEN) to an IP broadcast address with the intended victim's spoofed source IP address.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Understanding a script for sum

Hello, How come the following script adds each numeric value to a total sum ? x=$1 func() { for i in $1 $2 $3; do let x= $x+$i done } func "8 8 8" 9 9 echo $x A.How the program sums the string "8 8 8" if it`s only the first field value ($1)? B.If we define x to be $1... (3 Replies)
Discussion started by: uniran
3 Replies

2. UNIX for Beginners Questions & Answers

Shall script use and understanding

Below script is called as Reducer, I am not sure how it work, can some expert explain me what this script does as i am a beginner. inputfile: hi hi how are are you code: #!/bin/bash lastkey=""; -- what does this mean, because i saw in debug mode it is taking value as hi count=0;... (13 Replies)
Discussion started by: mirwasim
13 Replies

3. Shell Programming and Scripting

Help understanding the script

Could someone please help me in understanding the code below: #!/usr/bin/ksh Month=`date|cut -c5-7` Day=`date|cut -c9-10` Year=`date|cut -c27-28` Rom2Jul() { case $Month in Feb) Day=$(( $Day+31 ));; Mar) Day=$((... (27 Replies)
Discussion started by: hasn318
27 Replies

4. Shell Programming and Scripting

Help--understanding the script

Hi, New to this forum, as well as to unix scripting..need help to understand below script ... sendNotice_sp() { ATTACH=${LNXLOG:-} if ; then if ; then mail -s "$ERR_MSG" $ERR_EMAIL_TO < $ATTACH fi else mail -s "$ERR_MSG" $ERR_EMAIL_TO < /dev/null fi } afaik this is sm kind of... (6 Replies)
Discussion started by: gnnsprapa
6 Replies

5. Shell Programming and Scripting

Help understanding the script

Hi Guys, I am new to scripting , I am trying to rebuild a script based on an old script. Can someone help me figure out what the script is doing? This is only a part of the script. I am looking to interpret these two points in the scripts:- 1) test=`echo $?` while I do not... (3 Replies)
Discussion started by: rajsan
3 Replies

6. UNIX for Dummies Questions & Answers

help with understanding script

i am trying to understand this script example. the text does not explain it. can someone tell me briefly what each of the functions do. any help will be appreciated. #!/bin/bash killtree() { local _pid=$1 local _sig=${2-TERM} for _child in $(ps -o pid --no-headers --ppid... (1 Reply)
Discussion started by: iluvsushi
1 Replies

7. Shell Programming and Scripting

Need help understanding this script.

Can someone explain what is happening line by line in this script, particularly after the do statement. The script works, it renames all the files in my directory that has a date in the file name. But I would like to know more about it. #!/bin/bash newdate=12-10-1995 for file in *--* do ... (6 Replies)
Discussion started by: Harleyrci
6 Replies

8. UNIX for Advanced & Expert Users

understanding awk in this script

i am analyzing a query written by another developer ,need to understand part of script am looking at a code ..and it converts comma files to pipe delimited and also takes away quotes from any columns, source field format: 2510,"Debbie",NewYork changes to target: 2510|Debbie|NewYork ... (1 Reply)
Discussion started by: coolrock
1 Replies

9. Shell Programming and Scripting

Need help for understanding of script

# sub: find block (in cols), return line-numbers (begin-end) or 0 if notfound sub findb{ my ($exp1,$col1,$exp2,$col2)= @_; # $exp = expression to find, $col - column to search in my $cnt=0; my ($val1,$val2); my ($beg,$end); for($cnt=1;$cnt<=65536;$cnt++){ $val1 =... (3 Replies)
Discussion started by: suvenduperl
3 Replies

10. UNIX for Dummies Questions & Answers

Need help understanding script command

We use a UNIX-based system (Lawson) at work and I was given this command to request a data extract from the db admin. The only thing I really understand is the last line as it appears to be joining the files created from the first three lines into one. Is there anyone who can help me breakdown the... (4 Replies)
Discussion started by: KGee
4 Replies

Featured Tech Videos