Sponsored Content
Top Forums Shell Programming and Scripting Parsing the longest match substring Post 302992830 by RudiC on Thursday 2nd of March 2017 06:26:10 AM
Old 03-02-2017
Stealing from and simplifying Don Cragun's approach - try
Code:
awk -F// -v OFS="\t\t" '
FNR == NR       {l = length($0)
                 pat[l] = pat[l] DL[l] $0
                 DL[l]  = "|"
                 MX = l>MX?l:MX
                 next
                }

                {for (i=MX; i>0; i--)   {if (pat[i] && match($1, pat[i]))       {print $0, substr($1, RSTART, RLENGTH)
                                                                                 next
                                                                                }
                                        }
                 print $0, "No match"
                }
' primary scrambled

This User Gave Thanks to RudiC For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Finding longest common substring among filenames

I will be performing a task on several directories, each containing a large number of files (2500+) that follow a regular naming convention: YYYY_MM_DD_XX.foo_bar.A.B.some_different_stuff.EXT What I would like to do is automatically discover the part of the filenames that are common to all... (1 Reply)
Discussion started by: cmcnorgan
1 Replies

2. Shell Programming and Scripting

Parsing file to match strings

I have a file with the following format 12g data/datasets/cct 8g data/dataset/cct 10 g data/two 5g data/something_different 10g something_different 5g data/two is there a way to loop through this... (1 Reply)
Discussion started by: yawalias
1 Replies

3. Shell Programming and Scripting

Awk Array doesnt match for substring

Awk Array doesnt match for substring nawk -F"," 'FNR==NR{a=$2 OFS $3;next} a{print $1,$2,a}' OFS="," file1 file2 I want cluster3 in file1 to match with cluster3int in file2 output getting: Output required: Help is appreciated (8 Replies)
Discussion started by: pinnacle
8 Replies

4. Shell Programming and Scripting

shell script: longest match from right?

Return the position of matched string from right, awk match can do from left only. e.g return pos 7 for search string "service" from "AA-service" or return the matched string "service", then caculate the string length. Thanks!. (3 Replies)
Discussion started by: honglus
3 Replies

5. Shell Programming and Scripting

Substring match

Hi, I want to find a file / directory with the name xxxxCELLxxx in the given path. The CELL is can be either in a UPPER or lower case. Thanks (4 Replies)
Discussion started by: youknowme
4 Replies

6. Shell Programming and Scripting

Longest word in a file

I am trying to write a command on just one line, i.e seperated by ';' and '|' etc, that finds the number of characters in the longest word of a file, preferably using the 'tr' and 'wc' commands. i no that wc shows the number of lines words and characters in a file but im not sure how to use it... (5 Replies)
Discussion started by: scotty85
5 Replies

7. UNIX for Dummies Questions & Answers

Deleting files based on Substring match

In folder there are files (eg ABS_18APR2012_XYZ.csv DSE_17APR2012_ABE.csv) . My requirement is to delete all the files except today's timestamp I tried doing this to list all the files not having today's date timestamp #!/bin/ksh DATE=`date +"%d%h%Y"` DIR=/data/rfs/... (9 Replies)
Discussion started by: manushi88
9 Replies

8. Shell Programming and Scripting

Match substring from a column of the second file

I want to merge the lines by matching substring of the first file with first column of the second file. file1: S00739A_ACAGTG_L001_R1.fq.gz S00739A_ACAGTG_L001_R2.fq.gz S00739B_GCCAAT_L001_R1.fq.gz S00739B_GCCAAT_L001_R2.fq.gz S00739D_GTGAAA_L001_R1.fq.gz S00739D_GTGAAA_L001_R2.fq.gz... (14 Replies)
Discussion started by: yifangt
14 Replies

9. Shell Programming and Scripting

Match text to lines in a file, iterate backwards until text or text substring matches, print to file

hi all, trying this using shell/bash with sed/awk/grep I have two files, one containing one column, the other containing multiple columns (comma delimited). file1.txt abc12345 def12345 ghi54321 ... file2.txt abc1,text1,texta abc,text2,textb def123,text3,textc gh,text4,textd... (6 Replies)
Discussion started by: shogun1970
6 Replies

10. UNIX for Beginners Questions & Answers

Replace substring by longest string in common field (awk)

Hi, Let's say I have a pipe-separated input like so: name_10|A|BCCC|cat_1 name_11|B|DE|cat_2 name_10|A|BC|cat_3 name_11|B|DEEEEEE|cat_4 Using awk, for records with common field 2, I am trying to replace all the shortest substrings by the longest string in field 3. In order to get the... (5 Replies)
Discussion started by: beca123456
5 Replies
doc::lua-oocairo-pattern(3)				       Lua OO Cairo binding				       doc::lua-oocairo-pattern(3)

Name
       lua-oocairo-pattern - Cairo pattern objects

Introduction
       A pattern object is any one of several things that can be used as the source for a Cairo context, defining what colours and transparencies
       will be used for drawing.  These objects can be created explicitly with the various "pattern_create_*" functions in the module table (see
       lua-oocairo(3) for details), or implicitly by calling methods like "cr:set_source_rgb()" on a context object (see lua-oocairo-context(3)).

       Pattern objects can be compared with the "==" operator.	This will compare the identity of the objects, so different Lua objects which
       refer to the same "cairo_pattern_t" will compare as equal.

Methods
       pat:add_color_stop_rgb (offset, r, g, b)
	   Add a new colour stop to a gradient (either linear or radial, it doesn't matter).  The offset is a number from zero (the start of the
	   line or the first circle of the gradient) to one (the end of the line or the second circle).  The colour values must also be numbers
	   from zero to one.  The alpha level is set to fully transparent.

	   This will throw an exception if called on a pattern which isn't a gradient.

       pat:add_color_stop_rgba (offset, r, g, b, a)
	   Same as "pat:add_color_stop_rgb()" above, but the alpha value can be set to less than one to give some transparency to the gradient.
	   This can be used for gradients which fade away into nothing for example.

       pat:get_color_stops ()
	   Returns the color stops defined on a linear or radial gradient.  Throws an exception if called on any other type of pattern.

	   The return value will be a table, an array with one entry per color stop.  Each entry will be a table containing five numbers, in the
	   following order: offset, red, green, blue, alpha.

       pat:get_extend ()
	   Return the current method of extending the pattern beyond its limits.  The return value will be one of the strings accepted by the
	   "pat:set_extend()" method.

       pat:get_filter ()
	   Return the current filter method, which will be one of the strings accepted by the "pat:set_filter()" method.

       pat:get_linear_points ()
	   Return the start and end points of a linear gradient as four numbers.  Throws an exception if called on any other type of pattern.

       pat:get_matrix ()
	   Return the current transformation matrix used for the pattern.  See lua-oocairo-matrix(3).

       pat:get_radial_circles ()
	   Return the start and end circles of a radial gradient as six numbers.  Throws an exception if called on any other type of pattern.

       pat:get_rgba ()
	   Return the colour value and alpha level for a solid colour pattern.	Throws an exception for any other type of pattern.  The return
	   values will be four numbers, in the following order: red, green, blue, alpha.

       pat:get_surface ()
	   Return the surface object (see lua-oocairo-surface(3)) used for a surface pattern.  Throws an exception for any other kind of pattern.

       pat:get_type ()
	   Returns a string indicating what kind of pattern object this is.  The return value will be one of the following:

	   linear
	   radial
	   solid
	   surface
       pat:set_extend (extendtype)
	   Set the way in which the pattern should be extended beyond its defined limits.  The argument must be one of the following strings:

	   none
	       Everything outside the area defined by the pattern is fully transparent.

	   repeat
	       Pattern tiled by endlessly repeating it.

	   reflect
	       Pattern tiled by reflecting it at its edges.

	   pad Whatever is at the edge of the pattern is extended outwards.

       pat:set_filter (filtertype)
	   Set the filter method used for picking colours from the pattern when it is being used to render something.  The argument must be one of
	   the following strings:

	   fast
	       Fast interpolation that is likely to be low quality in some cases (but probably OK for a smooth gradient).

	   good
	       Reasonably good quality interpolation.

	   best
	       The highest quality interpolation available, but likely very slow.

	   nearest
	       Pick colour of nearest pixel.

	   bilinear
	       Interpolate between pixels.

	   gaussian
	       Gaussian blur, but this isn't implemented yet.

       pat:set_matrix (matrix)
	   Set the transformation matrix used for the pattern, as a table of six numbers.  See lua-oocairo-matrix(3).

1.4								    2011-05-18					       doc::lua-oocairo-pattern(3)
All times are GMT -4. The time now is 06:24 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy