Sponsored Content
Top Forums Shell Programming and Scripting match range of different numbers by AWK Post 302351380 by repinementer on Wednesday 9th of September 2009 03:22:35 AM
Old 09-09-2009
O.k Seems to be the code is completely with perfectionism :-).I have updated and modified little bit. This script is officially over. Thanx for your kind support.

Code:
#!/usr/bin/awk -f

BEGIN {
OFS="\t"; ORS="\n" 
  def["plus_out_left_not_overlapping"]    = "ARANGE"
  def["plus_out_right_not_overlapping"]    = "BRANGE"
  def["minus_out_left_not_overlapping"]    = "CRANGE"
  def["minus_out_right_not_overlapping"]    = "DRANGE"
  def["plus_in_not_overlapping"]    = "ERANGE"
  def["minus_in_not_overlapping"]    = "FRANGE"
  def["plus_in_overlapping"]    = "GRANGE"
  def["minus_in_overlapping"]    = "HRANGE"
  def["minus_out_right_overlapping"]    = "HRANGE"
  def["plus_in_left_overlapping"]    = "GRANGE"
  def["minus_in_right_overlapping"]    = "HRANGE"   
  }

func in_range(_num, _min, _max) { 
    return _min <= _num && _num <= _max 
    }
    
NR == FNR && NF {
  NF > 2 && k = $1
  in2[k] = in2[k] ? in2[k] RS $1 FS $2 : $2 FS $3
  next
  }
$1 in in2 {
  n = split(in2[$1], tmp, RS) 
  split(tmp[1], Tmp); min = Tmp[1]
  m = split(tmp[n], Tmp); max = Tmp[m]
  # plus - minus
  Def = $2 > $3 ? "minus" : "plus"
  # inrange - outofrange
  Def = Def (in_range($2, min, max) || \
    in_range($3, min, max) ? "_in" : "_out") 
  # left - right
  if ((Def ~ /plusout/ ? $3 : $2) < min) {
    Def = Def "_left"
#    print $0 "\t" def[Def], Def
#    next
    }
  if ((Def ~ /plusout/ ? $3 : $2) > max) {
    Def = Def "_right"
#    print $0 "\t" def[Def] "\t" Def
#    next
    }    
   # overlapping-not overlapping
  for (i=1; i<=n; i++) {
    split(tmp[i], range)
    if (Def ~ /minus/) { k1 = $2; k2 = $3 }      
    else { k1 = $3; k2 = $2 }
    if (k1 >= range[1] && k2 <= range[2]) {
      Def = Def "_overlapping"
      print $0 "\t" def[Def] "\t" Def
      next
      }
    }
      Def = Def "_not_overlapping"
    print $0 "\t" def[Def] "\t" Def
        next    
}!/^[ \t]/ { print $0 "\tUNKNOWN" }


Last edited by repinementer; 09-09-2009 at 09:57 AM..
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

match numbers (awk)

i would like to enter (user input) a bunch of numbers seperated by space: 10 15 20 25 and use awk to print out any lines in a file that have matching numbers so output is: 22 44 66 55 (10) 77 (20) (numbers 10 and 20 matched for example) is this possible in awk . im using gawk for... (5 Replies)
Discussion started by: tanku
5 Replies

2. Shell Programming and Scripting

Match real numbers in AWK

I am looking for a better way to match real numbers within a specified tolerance range. My current code is as follows: if ($1 !~ /^CASE/) for(i=1;i in G;i++) if (G >= $5-1 && G <= $5+1) { print $1,$4,$5,J,G } else { print $1,"NO MATCH" } where $5 and G are... (3 Replies)
Discussion started by: cold_Que
3 Replies

3. Shell Programming and Scripting

awk to match a numeric range specified by two columns

Hi Everyone, Here's a snippet of my data: File 1 = testRef2: A1BG - 13208 13284 AAA1 - 34758475 34873943 AAAS - 53701240 53715412File 2 = 42MLN.3.bedS2: 13208 13208 13360 13363 13484 13518 13518My awk script: awk 'NR == FNR{a=$1;next} {$1>=a}{$1<=a}{print... (5 Replies)
Discussion started by: heecha
5 Replies

4. Shell Programming and Scripting

Range of numbers in HEX using AWK

Hi , How do i found out all the number in a range ( HEX) for example Input is 15CF:15D2 Output needed 15CF 15D0 15D1 15D2 Thanks (2 Replies)
Discussion started by: greycells
2 Replies

5. Shell Programming and Scripting

Awk numeric range match only one digit?

Hello, I have a text file with lines that look like this: 1974 12 27 -0.72743 -1.0169 2 1.25029 1974 12 28 -0.4958 -0.72926 2 0.881839 1974 12 29 -0.26331 -0.53426 2 0.595623 1974 12 30 7.71432E-02 -0.71887 3 0.723001 1974 12 31 0.187789 -1.07114 3 1.08748 1975 1 1 0.349933 -1.02217... (2 Replies)
Discussion started by: meridionaljet
2 Replies

6. Shell Programming and Scripting

Complex match of numbers between 2 files awk script

Hello to all, I hope some awk guru could help me. I have 2 input files: File1: Is the complete database File2: Contains some numbers which I want to compare File1: "NUMBERKEY","SERVICENAME","PARAMETERNAME","PARAMETERVALUE","ALTERNATENUMBERKEY"... (9 Replies)
Discussion started by: Ophiuchus
9 Replies

7. Shell Programming and Scripting

awk : match only the pattern string , not letters or numbers after that.

Hi Experts, I am finding difficulty to get exact match: file OPERATING_SYSTEM=HP-UX LOOPBACK_ADDRESS=127.0.0.1 INTERFACE_NAME="lan3" IP_ADDRESS="10.53.52.241" SUBNET_MASK="255.255.255.192" BROADCAST_ADDRESS="" INTERFACE_STATE="" DHCP_ENABLE=0 INTERFACE_NAME="lan3:1"... (6 Replies)
Discussion started by: rveri
6 Replies

8. Shell Programming and Scripting

Match on a range of numbers

Hi, I'm trying to match a filename that could be called anything from vout001 to vout252 and was trying to do a small test but I'm not getting the result I thought I would.. Can some one tell me what I'm doing wrong? *****@********>echo $mynumber ... (4 Replies)
Discussion started by: Jazmania
4 Replies

9. Shell Programming and Scripting

Get range out using sed or awk, only if given pattern match

Input: START OS:: UNIX Release: xxx Version: xxx END START OS:: LINUX Release: xxx Version: xxx END START OS:: Windows Release: xxx Version: xxx ENDHere i am trying to get all the information between START and END, only if i could match OS Type. I can get all the data between the... (3 Replies)
Discussion started by: Dharmaraja
3 Replies

10. Shell Programming and Scripting

awk to print text in field if match and range is met

In the awk below I am trying to match the value in $4 of file1 with the split value from $4 in file2. I store the value of $4 in file1 in A and the split value (using the _ for the split) in array. I then strore the value in $2 as min, the value in $3 as max, and the value in $1 as chr. If A is... (6 Replies)
Discussion started by: cmccabe
6 Replies
gendef(1)						      General Commands Manual							 gendef(1)

NAME
gendef - DLL export extractor SYNOPSIS
gendef [options] <DLL> DESCRIPTION
gendef dumps DLL export information from 32- and 64-bit Windows executables (respectively PE32 and PE32+ executables). OPTIONS
- Dump to stdout -h, --help Briefly describe the syntax and options. -a, --assume-stdcall Assume functions with ambiguous calling conventions use stdcall. -I, --include-def-path <path> Add additional search paths in which to look for hint .def files. -f, --no-forward-output Don't output forwarders. OUTPUT
By default gendef writes the DLL export information to a file named after the DLL, replacing .dll with .def. KNOWN ISSUES
For 32-bit DLLs, gendef cannot detect if a function with no return value (void) exported by a DLL uses stdcall or cdecl. Two workarounds are available: either use the "-a" option to force stdcall calling conventions, or generate .def files for any DLLs the DLL you're inter- ested in depends upon. gendef will read other .def files found in the working directory to determine the calling convention in use. 64-bit DLLs are not affected, since they only use a single calling convention. SEE ALSO
genidl(1) AUTHORS
gendef was written by Kai Tietz and Jonathan Yong of the MinGW-w64 project. This manual page was written by Stephen Kitt <steve@sk2.org>, based on information provided with the program and in the project's wiki, for the Debian GNU/Linux system (but may be used by others). gendef Oct 6, 2011 gendef(1)
All times are GMT -4. The time now is 02:59 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy