Sponsored Content
Top Forums Shell Programming and Scripting A better way to compare text length percentage? Post 303046093 by bedtime on Thursday 23rd of April 2020 02:47:52 PM
Old 04-23-2020
A better way to compare text length percentage?

I have a solution, but it seems labored. I would like to compare strings return a value in percent out of 100.


Such as:

Code:
$ text1='a'; text2='abc'; s1=${#text1}; s2=${#text2}
$ [ "$s1" -gt "$s2" ] && di=$(( (($s1*100) / ($s2+1)) )) || [ "$s2" -gt "$s1" ] && di=$(( (($s2*100) / ($ls+1)) ))
$ echo $di
300

i.e., 'abc' is 300% longer than 'a'


For beginners: s1=${#text1} will return the length of $text1. In this case it would return '1' because it is one character long ('a').


I've looked at the man pages for 'diff' and some others and haven't figured out an easy way that this could be done in a more simple manner; yet, something tells me I'm missing something. I'm repeating the formulas, and I'm wondering if there is perhaps some way to do an inverse of a result... Anyways, it seems redundant.


Ideas?
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

how can i compare te length of the string

how can i campare te length of the string $var = unix if ( $var -eq 4 ) then.. is it right (6 Replies)
Discussion started by: mail2sant
6 Replies

2. Shell Programming and Scripting

How to Compare two files depend on line length Chars

I need to compare two files with exactly same length as example: - File1 contain 500 records with length of 640 chars of each line. File2 contain 1500 records with length of 640 chars of each line. I need get an output to be written in File3 which will contain 1000 records difference. but... (4 Replies)
Discussion started by: elj3dah
4 Replies

3. Shell Programming and Scripting

Need awk script to compare 2 fields in fixed length file.

Need a script that manipulates a fixed length file that will compare 2 fields in that file and if they are equal write that line to a new file. i.e. If fields 87-93 = fields 119-125, then write the entire line to a new file. Do this for every line in the file. After we get only the fields... (1 Reply)
Discussion started by: Muga801
1 Replies

4. UNIX for Dummies Questions & Answers

compare 2 very large lists of different length

I have two very large datasets (>100MB) in a simple vertical list format. They are of different size and with different order and formatting (e.g. whitespace and some other minor cruft that would thwart easy regex). Let's call them set1 and set2. I want to check set2 to see if it contains... (2 Replies)
Discussion started by: uiop44
2 Replies

5. Shell Programming and Scripting

changing a variable length text to a fixed length

Hi, Can anyone help with a effective solution ? I need to change a variable length text field (between 1 - 18 characters) to a fixed length text of 18 characters with the unused portion, at the end, filled with spaces. The text field is actually field 10 of a .csv file however I could cut... (7 Replies)
Discussion started by: dc18
7 Replies

6. Shell Programming and Scripting

Aligning text files by max field length

Hello, Is there anyway that I can align a pipe delimited text file by the maxium field length where the field is separated out by pipes for large text files with more than 100,000 rows? So, far I have searched other forums and google about aligning text files in unix and I have noticed that... (7 Replies)
Discussion started by: physalis2099
7 Replies

7. UNIX for Dummies Questions & Answers

print variable length text from the middle of a line?

I am trying to get text from a webpage, in terminal form. So far I am: 1. getting the html for the page printed using curl (curl -s webpage.com), which is then 2. piped to awk, printing line number 29 (awk NR==29), then 3. this is where I am sort of lost. I know where in the printed line I... (7 Replies)
Discussion started by: darkfalz
7 Replies

8. Shell Programming and Scripting

awk to output the percentage of a field compared to length

The awk below using the sample input would output the following: Basically, it averages the text in $5 that matches if $7 < 30 . awk '{if(len==0){last=$5;total=$7;len=1;getline}if($5!=last){printf("%s\t%f\n", last,... (6 Replies)
Discussion started by: cmccabe
6 Replies

9. Shell Programming and Scripting

Compare string length to a number

Hi, I want to compare strings length to a number but i am getting error. I want first name should be length of 8. Please help. #bin !/bin/bash clear echo -n "Enter name " read name IFS=_ ary=($name) for key in "${!ary}"; do echo "$key${ary}"; done ##First name should be equal to 8... (8 Replies)
Discussion started by: rajneesh4U
8 Replies

10. Shell Programming and Scripting

Extracting fixed length number from a text file

Hi, I have a text file with sample records as CASE ID: 20170218881083 Original presentment record for ARN not found for Re-presentment I want to extract the 23 digit number from this file. I thought of using grep but initially couldn't extract the required number. However, after... (16 Replies)
Discussion started by: dsid
16 Replies
Imager::Test(3pm)					User Contributed Perl Documentation					 Imager::Test(3pm)

NAME
Imager::Test - common functions used in testing Imager SYNOPSIS
use Imager::Test 'diff_text_with_nul'; diff_text_with_nul($test_name, $text1, $text2, @string_options); DESCRIPTION
This is a repository of functions used in testing Imager. Some functions will only be useful in testing Imager itself, while others should be useful in testing modules that use Imager. No functions are exported by default. FUNCTIONS
Test functions is_color1($color, $grey, $comment) Tests if the first channel of $color matches $grey. is_color3($color, $red, $green, $blue, $comment) Tests if $color matches the given ($red, $green, $blue) is_color4($color, $red, $green, $blue, $alpha, $comment) Tests if $color matches the given ($red, $green, $blue, $alpha) is_fcolor1($fcolor, $grey, $comment) is_fcolor1($fcolor, $grey, $epsilon, $comment) Tests if $fcolor's first channel is within $epsilon of ($grey). For the first form $epsilon is taken as 0.001. is_fcolor3($fcolor, $red, $green, $blue, $comment) is_fcolor3($fcolor, $red, $green, $blue, $epsilon, $comment) Tests if $fcolor's channels are within $epsilon of ($red, $green, $blue). For the first form $epsilon is taken as 0.001. is_fcolor4($fcolor, $red, $green, $blue, $alpha, $comment) is_fcolor4($fcolor, $red, $green, $blue, $alpha, $epsilon, $comment) Tests if $fcolor's channels are within $epsilon of ($red, $green, $blue, $alpha). For the first form $epsilon is taken as 0.001. is_image($im1, $im2, $comment) Tests if the 2 images have the same content. Both images must be defined, have the same width, height, channels and the same color in each pixel. The color comparison is done at 8-bits per pixel. The color representation such as direct vs paletted, bits per sample are not checked. Equivalent to is_image_similar($im1, $im2, 0, $comment). is_imaged($im, $im2, $comment) is_imaged($im, $im2, $epsilon, $comment) Tests if the two images have the same content at the double/sample level. $epsilon defaults to the platform DBL_EPSILON multiplied by four. is_image_similar($im1, $im2, $maxdiff, $comment) Tests if the 2 images have similar content. Both images must be defined, have the same width, height and channels. The cum of the squares of the differences of each sample are calculated and must be less than or equal to $maxdiff for the test to pass. The color comparison is done at 8-bits per pixel. The color representation such as direct vs paletted, bits per sample are not checked. isnt_image($im1, $im2, $comment) Tests that the two images are different. For regressions tests where something (like text output of "0") produced no change, but should have produced a change. test_colorf_gpix($im, $x, $y, $expected, $epsilon, $comment) Retrieves the pixel ($x,$y) from the low-level image $im and compares it to the floating point color $expected, with a tolerance of epsilon. test_color_gpix($im, $x, $y, $expected, $comment) Retrieves the pixel ($x,$y) from the low-level image $im and compares it to the floating point color $expected. test_colorf_glin($im, $x, $y, $pels, $comment) Retrieves the floating point pixels ($x, $y)-[$x+@$pels, $y] from the low level image $im and compares them against @$pels. is_color_close3($color, $red, $green, $blue, $tolerance, $comment) Tests if $color's first three channels are within $tolerance of ($red, $green, $blue). Test suite functions Functions that perform one or more tests, typically used to test various parts of Imager's implementation. image_bounds_checks($im) Attempts to write to various pixel positions outside the edge of the image to ensure that it fails in those locations. Any new image type should pass these tests. Does 16 separate tests. mask_tests($im, $epsilon) Perform a standard set of mask tests on the OO image $im. Does 24 separate tests. diff_text_with_nul($test_name, $text1, $text2, @options) Creates 2 test images and writes $text1 to the first image and $text2 to the second image with the string() method. Each call adds 3 "ok"/"not ok" to the output of the test script. Extra options that should be supplied include the font and either a color or channel parameter. This was explicitly created for regression tests on #21770. Helper functions test_image_raw() Returns a 150x150x3 Imager::ImgRaw test image. test_image() Returns a 150x150x3 8-bit/sample OO test image. Name: "basic". test_image_16() Returns a 150x150x3 16-bit/sample OO test image. Name: "basic16" test_image_double() Returns a 150x150x3 double/sample OO test image. Name: "basic_double". test_image_gray() Returns a 150x150 single channel OO test image. Name: "gray". test_image_gray_16() Returns a 150x150 16-bit/sample single channel OO test image. Name: "gray16". test_image_mono() Returns a 150x150 bilevel image that passes the is_bilevel() test. Name: "mono". test_image_named($name) Return one of the other test images above based on name. color_cmp($c1, $c2) Performs an ordering of 3-channel colors (like <=>). colorf_cmp($c1, $c2) Performs an ordering of 3-channel floating point colors (like <=>). AUTHOR
Tony Cook <tony@develop-help.com> perl v5.14.2 2012-05-11 Imager::Test(3pm)
All times are GMT -4. The time now is 12:25 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy