Visit Our UNIX and Linux User Community

Top Forums Shell Programming and Scripting A better way to compare text length percentage? Post 303046128 by bedtime on Friday 24th of April 2020 07:27:11 PM
Old 04-24-2020
Originally Posted by sea
Thats why I prefer functions:
bigger_value()  { # str1 str2
    [[ ! 2 -eq $# ]] && echo "Usage: $FUNCNAME str1 str2" >&2 && return 1
    echo ${#1} ${#2} | awk '{a=b=$1;($1>$2)?a=$2:b=$2;if(a*b){print int(100/a*b)}}' >&1
    return $?

I prefer to only use functions when I'm going to use them more than once in my code. In this case, it's only used once.

But you still need to figure out a way to 'remove the option' to pass an empty string.
And without knowing how/where you get those strings, we can not help.
The strings are regular text. So long as the examples as we've used them work, the program will work. As to the empty string, the code to not run if one or more strings are 0 in length works well enough for me.

Last edited by bedtime; 04-24-2020 at 08:55 PM..
Test Your Knowledge in Computers #984
Difficulty: Medium
FreeBSD was the most popular open-source BSD operating system, accounting for more than three-quarters of all installed BSD systems.
True or False?

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, 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
PROP_STRING(3)						   BSD Library Functions Manual 					    PROP_STRING(3)

prop_string, prop_string_create, prop_string_create_cstring, prop_string_create_cstring_nocopy, prop_string_copy, prop_string_copy_mutable, prop_string_size, prop_string_mutable, prop_string_cstring, prop_string_cstring_nocopy, prop_string_append, prop_string_append_cstring, prop_string_equals, prop_string_equals_cstring -- string value property object LIBRARY
Property Container Object Library (libprop, -lprop) SYNOPSIS
#include <prop/proplib.h> prop_string_t prop_string_create(void); prop_string_t prop_string_create_cstring(const char *cstring); prop_string_t prop_string_create_cstring_nocopy(const char *cstring); prop_string_t prop_string_copy(prop_string_t string); prop_string_t prop_string_copy_mutable(prop_string_t string); size_t prop_string_size(prop_string_t string); bool prop_string_mutable(prop_string_t string); char * prop_string_cstring(prop_string_t string); const char * prop_string_cstring_nocopy(prop_string_t string); bool prop_string_append(prop_string_t str1, prop_string_t str2); bool prop_string_append_cstring(prop_string_t string, const char *cstring); bool prop_string_equals(prop_string_t str1, prop_string_t str2); bool prop_string_equals_cstring(prop_string_t string, const char *cstring); DESCRIPTION
The prop_string family of functions operate on a string value property object type. prop_string_create(void) Create an empty mutable string. Returns NULL on failure. prop_string_create_cstring(const char *cstring) Create a mutable string that contains a copy of cstring. Returns NULL on failure. prop_string_create_cstring_nocopy(const char *cstring) Create an immutable string that contains a reference to cstring. Returns NULL on failure. prop_string_copy(prop_string_t string) Copy a string. If the string being copied is an immutable external C string reference, then the copy is also immutable and references the same external C string. Returns NULL on failure. prop_string_copy_mutable(prop_string_t string) Copy a string, always creating a mutable copy. Returns NULL on failure. prop_string_size(prop_string_t string) Returns the size of the string, not including the terminating NUL. If the supplied object isn't a string, zero is returned. prop_string_mutable(prop_string_t string) Returns true if the string is mutable. If the supplied object isn't a string, false is returned. prop_string_cstring(prop_string_t string) Returns a copy of the string's contents as a C string. The caller is responsible for freeing the returned buffer. In user space, the buffer is allocated using malloc(3). In the kernel, the buffer is allocated using malloc(9) using the malloc type M_TEMP. Returns NULL on failure. prop_string_cstring_nocopy(prop_string_t string) Returns an immutable reference to the contents of the string as a C string. If the supplied object isn't a string, NULL is returned. prop_string_append(prop_string_t str1, prop_string_t str2) Append the contents of str2 to str1, which must be mutable. Returns true upon success and false otherwise. prop_string_append_cstring(prop_string_t string, const char *cstring) Append the C string cstring to string, which must be mutable. Returns true upon success and false otherwise. prop_string_equals(prop_string_t str1, prop_string_t str2) Returns true if the two string objects are equivalent. prop_string_equals_cstring(prop_string_t string, const char *cstring) Returns true if the string's value is equivalent to cstring. SEE ALSO
prop_array(3), prop_bool(3), prop_data(3), prop_dictionary(3), prop_number(3), prop_object(3), proplib(3) HISTORY
The proplib property container object library first appeared in NetBSD 4.0. BSD
January 21, 2008 BSD

Featured Tech Videos

All times are GMT -4. The time now is 06:53 AM.
Unix & Linux Forums Content Copyright 1993-2020. All Rights Reserved.
Privacy Policy