Sponsored Content
Top Forums Shell Programming and Scripting A better way to compare text length percentage? Post 303046101 by bedtime on Thursday 23rd of April 2020 07:52:48 PM
Old 04-23-2020
Thank you all for you solutions. I ended up going with vegersh99's solution as it was the most brief. I liked RudiC's mathmatics with the inverse equation.


Since I cannot have 'division by zero' errors, I added the 'if' statement near the end. Found out that shell doesn't like to compare numbers with decimals so added the int() function as well:

Code:
echo ${#text1} ${#text2} | awk '{a=b=$1;($1>$2)?a=$2:b=$2;if(a*b){print int(100/a*b)}}'


Would really like to figure out how to get this to do the equation so as not to have the 'division by zero' error when one or two variables have an empty string. I've tried a bunch of things such as adding '1' to each variable and trying to make it up elsewhere, but each time the values are incorrect.



Anyways, for now, it's more concise, and it's being used in the code.


Thanks everyone!
 

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
chemeq(1)																 chemeq(1)

NAME
Chemeq - Chemical Equation Analyzer SYNOPSIS
chemeq [options] DESCRIPTION
Chemeq is a chemical equation analyzer. It is a fast lexical and syntaxic analyser which helps to find out chemical informations embedded in source chemical equations. Data can be output in various sophisticated formats, depending on options. 'chemeq' defaults to 'chemeq -mlcwCn'. OPTIONS
Options are active only if chemeq parses an equation of chemical reaction. If chemeq parses the formula of a simple chemical, no option is taken in account, the output is just a straightforward TeX string representing the simple chemical. -h Displays Help. -v Displays the Version number -M Outputs al list of space separated molecular weights. -m Outputs a Minimal output. It allows chemeq to be idempotent, i.e. the command 'chemeq | chemeq' is equivalent to 'chemeq'. -l Outputs a LaTeX string representing the chemical equation. -c Outputs a message giving informations about the Conservation of elements and charges in the equation. 'OK' means that both elements and electric charges are balanced. -w Outputs the LaTeX string representing the Gulder-Waage equation related to the input chemical equation, or the Nernst equation, if the input equation is a redox semi-equation. -C Outputs a detailed Count of the molecules and atoms contained in each member of the chemical equation. For example for the equation "H2_g + 1/2 O2_g --> H2O" it outputs: "H2_g|H:1*2, 1/2 O2_g|O:1/2*2; H2O|H:1*2 O:1*1" -e Outputs a detailed count of the Electrical charges. -s Outputs a list of the chemical Species. -n Outputs a Normalized string accounting for the input equation. Two chemical equations having the same normalized string are chemi- cally equivalent, even if the molecules are scrambled around and the coefficient are not equal but proportionnal. ENVIRONMENT VARIABLES
chemeq_input if set, this variables's value overrides the standard input. If this variable is not set, the variable w_chemeq_input is taken in account (useful for the WIMS server). chemeq_option if set, this variable's value overrides the options.If this variable is not set, the variable w_chemeq_option is taken in account (useful for the WIMS server). EXAMPLES
echo "1/2 Cu^2+ + OH- -> 1/2Cu(OH)2s" | chemeq will display informations about the reaction of hydroxyde and Cu II ions. echo "MnO4^- + 8H3O^+ + 5e- --> Mn^2+ + 12 H2O" | chemeq will display informations about the reaction of reduction of permanganate ions in an acid environment. echo "MnO4^- + 8H3O^+ + 5e- --> Mn^2+ + 12 H2O" | chemeq -w will display the LaTeX format for the Nernst law related to the reduction of permanganate ions in an acid environment. echo "MnO4^- + 8H3O^+ + 5e- --> Mn^2+ + 8 H2O" | chemeq -c will highlight the lack of conservation of elements H and O (water molecules are not well balanced). NOTE
: syntax of ions allthough in some cases, shorter expressions are sucessfully parsed, it is safer to consider that an "up arrow" (^) must be put before the charge symbols of an ion. Examples : H3O^+, Fe(CN)6^4-, OH^- Composing chemical equations. Two operators are defined, # as an additive oprator and ~ (tilde) as a substractive operator: they allow to compose several chemical equa- tions echo "MnO4^- + 8H3O^+ + 5e- --> Mn^2+ + 8 H2O ~ 5Fe^3+ + 5e- -> 5Fe^2+" | chemeq will display the pure redox equation from the first equation, minus the second one. Electrons are simplified. So it will be equiva- lent to: echo "MnO4^- + 8H3O^+ + 5Fe^2+--> Mn^2+ + 8 H2O + 5Fe^3+" | chemeq which is their combination. Mutiplying a chemical equation by one coefficient. The operator * permits to multiply a whole equation by one coefficient which may be a fraction. Here is an example: echo "5 * Fe^3+ + e- -> Fe^2+" | chemeq will be equivalent to echo "5Fe^3+ + 5e- -> 5Fe^2+" | chemeq Combining chemical equations, with coefficients. The two previous techniques can be used at the same time, which enables you to make more comlicated combinations, like this one: echo "Fe^3+ + e^- -> Fe^2+ (0.77 V) # Fe^2+ + 6CN^- -> Fe(CN)6^4- (Kfa=1e24) ~ Fe^3+ + 6CN^- -> Fe(CN)6^3- (Kfb=1e31)" | chemeq which will work as expected, and yeld a good value for the standard potential of the redox couple of hexacyanoferrate II and III ions. AUTHORS
Georges Khaznadar, <georgesk@ofset.org> KNOWN BUGS
When not specified, chemical entities coming from the standard input are believed to be in aqueous solutions. Water is considered by default as the main solvent. Only one liquid (aqueous) phase is currently taken in account. All solid chemical entities are considered as parts of separated phases. Suffixes _s, _g and _aq can be used to enforce the type of some chemical entities. There may be problemes when you write a standard potential with no decimal dot. For example, the entry Mn^2+ + 2e^- -> Mn_s (-1 V) would trigger an error. Then write Mn^2+ + 2e^- -> Mn_s (-1.0 V) or the more accurate value Mn^2+ + 2e^- -> Mn_s (-1.18 V) and there will be no error. 4 june 2000 chemeq(1)
All times are GMT -4. The time now is 07:29 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy