Sponsored Content
Full Discussion: Array compare bash script
Top Forums Shell Programming and Scripting Array compare bash script Post 303000101 by MadeInGermany on Tuesday 4th of July 2017 09:08:26 AM
Old 07-04-2017
If the array elements are unique and in the same order then you only need one loop.
Example:
Code:
ARRAY=(/ /boot /var /usr) # fstab
ARRAY2=(/ /xboot /var) # df
max=${#ARRAY[@]}
max2=${#ARRAY2[@]}
i=0 j=0
while [ $i -lt $max ] || [ $j -lt $max2 ]
do
  if [[ "${ARRAY[$i]}" != "${ARRAY2[$j]}" ]]
  then
    if [[ "${ARRAY[$i]}" = "${ARRAY2[$((j+1))]}" ]]
    then
      echo "df ${ARRAY2[$j]} doesnt exist in fstab ${ARRAY[$i]}"
      j=$((j+1))
    elif [[ "${ARRAY[$((i+1))]}" = "${ARRAY2[$j]}" ]]
    then
      echo "fstab ${ARRAY[$i]} doesnt exist in df ${ARRAY2[$j]}"
      i=$((i+1))
    else
      echo "mismatch fstab ${ARRAY[$i]} and df ${ARRAY2[$j]}"
    fi
  fi
  i=$((i+1)) j=$((j+1))
done


Last edited by MadeInGermany; 07-05-2017 at 12:45 PM.. Reason: simplification, now also reports mismatches only
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Use Perl In Bash Script To Compare Floationg Points

Is there a way to compare two floating points numbers in a bash script using perl? I've tried just using a bash if statement and it doesn't seem to support floating point numbers. Can the perl line read vars from bash then output a var to bash? a=1.1 #from bash b=1.5 #from bash if... (3 Replies)
Discussion started by: Grizzly
3 Replies

2. Shell Programming and Scripting

count and compare no of records in bash shell script.

consider this as a csv file. H,0002,0002,20100218,17.25,P,barani D,1,2,3,4,5,6,7,8,9,10,11 D,1,2,3,4,5,6,7,8,9,10,11 D,1,2,3,4,5,6,7,8,9,10,11 D,1,2,3,4,5,6,7,8,9,10,11 D,1,2,3,4,5,6,7,8,9,10,11 T,5 N i want to read the csv file and count the number of rows that start with D and... (11 Replies)
Discussion started by: barani75
11 Replies

3. Shell Programming and Scripting

How to compare time in bash script?

Hi, Anyone know how to compare the time in bash script? I want to compare say 30 min. to 45 min. ( AIX ) Thanks. (1 Reply)
Discussion started by: sumit30
1 Replies

4. Shell Programming and Scripting

Bash script to compare two lists

Hi, I do little bash scripting so sorry for my ignorance. How do I compare if the two variable not match and if they do not match run a command. I was thinking a for loop but then I need another for loop for the 2nd list and I do not think that would work as in the real world there could... (2 Replies)
Discussion started by: GermanJulian
2 Replies

5. Shell Programming and Scripting

Compare file to array, replace with corresponding second array

ok, so here is the issue, I have 2 arrays. I need to be able to create a loop that will find ${ARRAY1 in the text doc, and replace it with ${ARRAY2 then write the results. I already have that working. The problem is, I need it to do that same result across however many items are in the 2... (2 Replies)
Discussion started by: gentlefury
2 Replies

6. Shell Programming and Scripting

Compare & Copy Directories : Bash Script Help

Beginner/Intermediate shell; comfortable in the command line. I have been looking for a solution to a backup problem. I need to compare Directory 1 to Directory 2 and copy all modified or new files/directories from Directory 1 to Directory 3. I need the directory and file structure to be... (4 Replies)
Discussion started by: Rod
4 Replies

7. Shell Programming and Scripting

Bash script to compare 2 file

Hello Friends please help me to create script to compare 2 fiile which has rpm info . File 1: glibc-2.12.1.149.el6_6.5.x86_64.rpm glibc-common-2.12-1.149.el6_6.5.x86_64.rpm File 2 : glibc-2.12.123.el6_6.5.x86_64.rpm glibc-common-2.12-123.el6_6.5.x86_64.rpm To compare file1... (1 Reply)
Discussion started by: rnary
1 Replies

8. UNIX for Beginners Questions & Answers

Array problem in Bash Script

I am trying to write a Bash Script using a couple of arrays. I need to perform a countdown of sorts on an array done once daily, but each day would start with the numbers from the previous day. This is what I'm starting with : #!/bin/bash days=(9 8 7 6 5) for (( i = 0 ; i < ${#days} ; i++... (4 Replies)
Discussion started by: cogiz
4 Replies

9. UNIX for Beginners Questions & Answers

Bash script to compare file all the files exits or not

Currently i am building a script like based on region parameter it will filter the records in config file and then it will create a text file like ab.txt and it will read the path location in that file and now i need to compare the files name in the config file to files in the path of the config... (1 Reply)
Discussion started by: saranath
1 Replies

10. UNIX for Beginners Questions & Answers

Compare date bash script

I all I have written a bash script for compare two date. One of those is a result of query, and another is current date. I have a problem with the format, because the first is 09/12/19 18:50:30 but for having this result I have to do d1DB=$(date -d "$valData" +'%m/%d/%y %T') and the second... (9 Replies)
Discussion started by: rdie77
9 Replies
Log::Report::Lexicon::PO(3pm)				User Contributed Perl Documentation			     Log::Report::Lexicon::PO(3pm)

NAME
Log::Report::Lexicon::PO - one translation definition DESCRIPTION
This module is administering one translation object. Sets of PO objects are kept in a POT file, implemented in Log::Report::Lexicon::POT. METHODS
Constructors Log::Report::Lexicon::PO->new(OPTIONS) -Option --Default automatic "" comment [] format [] fuzzy false msgid <required> msgid_plural undef msgstr "" or [] references [] automatic => PARAGRAPH Automatically added comments. See addAutomatic(). comment => PARAGRAPH Translator added comments. See addComment(). format => ARRAY-OF-PAIRS|HASH See format(). fuzzy => BOOLEAN The string is not yet translated, some smart guesses may have been made. See fuzzy(). msgid => STRING msgid_plural => STRING msgstr => STRING|ARRAY-OF-STRING The translations for the msgid. When msgid_plural is defined, then an ARRAY must be provided. references => STRING|ARRAY-OF-LOCATIONS The STRING is a blank separated list of LOCATIONS. LOCATIONs are of the form "filename:linenumber", for instance "lib/Foo.pm:42" See addReferences() Attributes $obj->addAutomatic(LIST|ARRAY|STRING) Add multiple lines to the translator's comment block. Returns an empty string if there are no comments. $obj->addComment(LIST|ARRAY|STRING) Add multiple lines to the translator's comment block. Returns an empty string if there are no comments. $obj->addFlags(STRING) Parse a "flags" line. $obj->addReferences(STRING|LIST|ARRAY) The STRING is a blank separated list of LOCATIONS. The LIST and ARRAY contain separate LOCATIONs. A LOCATION is of the form "filename:linenumber". Returns the internal HASH with references. $obj->automatic([LIST|ARRAY|STRING]) Returns a STRING which contains the cleaned paragraph of automatically added comments. If an argument is specified, it will replace the current comment. $obj->comment([LIST|ARRAY|STRING]) Returns a STRING which contains the cleaned paragraph of translator's comment. If an argument is specified, it will replace the current comment. $obj->format(LANGUAGE|PAIRS|ARRAY-OF-PAIRS|HASH) When one LANGUAGE is specified, it looks whether a "LANGUAGE-format" or "no-LANGUAGE-format" is present in the line of FLAGS. This will return 1 (true) in the first case, 0 (false) in the second case. It will return "undef" (also false) in case that both are not present. You can also specify PAIRS: the key is a language name, and the value is either 0, 1, or "undef". example: use of format() if($po->format('c')) ... unless($po->format('perl-brace')) ... if(defined $po->format('java')) ... $po->format(java => 1); # results in 'java-format' $po->format(java => 0); # results in 'no-java-format' $po->format(java => undef); # results in '' $obj->fuzzy([BOOLEAN]) Returns whether the translation needs human inspection. $obj->isActive Returns whether the translation has any references, or is the header. $obj->msgid Returns the actual msgid, which cannot be "undef". $obj->msgstr([INDEX, [STRING]]) With a STRING, a new translation will be set. Without STRING, a lookup will take place. When no plural is defined, use INDEX 0 $obj->plural([STRING]) Returns the actual msgid_plural, which can be "undef". $obj->references([STRING|LIST|ARRAY]) Returns an unsorted list of LOCATIONS. When options are specified, then those will be used to replace all currently defined references. Returns the unsorted LIST of references. $obj->removeReferencesTo(FILENAME) Remove all the references to the indicate FILENAME from the list. Returns the number of refs left. Parsing Log::Report::Lexicon::PO->fromText(STRING, [WHERE]) Parse the STRING into a new PO object. The WHERE string should explain the location of the STRING, to be used in error messages. $obj->toString(OPTIONS) Format the object into a multi-lined string. -Option --Default nr_plurals undef nr_plurals => INTEGER If the number of plurals is specified, then the plural translation list can be checked for the correct length. Otherwise, no smart behavior is attempted. $obj->unused The message-id has no references anymore and no translations. SEE ALSO
This module is part of Log-Report distribution version 0.94, built on August 23, 2011. Website: http://perl.overmeer.net/log-report/ LICENSE
Copyrights 2007-2011 by Mark Overmeer. For other contributors see ChangeLog. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See http://www.perl.com/perl/misc/Artistic.html perl v5.14.2 2012-03-02 Log::Report::Lexicon::PO(3pm)
All times are GMT -4. The time now is 10:44 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy