Array operators


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Array operators
# 1  
Old 03-29-2012
Array operators

Hi

Lets say I have two arrays:
VAR_1 = "File_A" "File_B" "File_C" "File_D"
VAR_2 = "File_A" "File_D"

Is there a simple command to get the difference of these list, i.e.
VAR_1_2 = "File_B" "File_C"
or do I have to write a script and loop through all elements and compare them one by one?

Thanks
# 2  
Old 03-30-2012
For most shell languages neither of those statements make an array. You cannot have spaces on any side of the = character:

bash array:
Code:
var_1=( "array element 1"  "array element 2")

ksh array:

Code:
set -A var_1 "array element 1"  "array element 2"

The answer to your question is No, there is no single command, you have to program a couple of pipes:

one way assuming you have the arrays already and they are array and array2:
Code:
echo ${array1[*]} | tr -s ' ' '\n' > file1
echo ${array2[*]} | tr -s ' ' '\n' > file2
diff file1 file2

I am assuming you want real differences. If you simply want to know if they are equal:


Code:
if [  "${array1[*]}" = "${array2[*]}"  ] ; then
   echo "same"
else 
  echo "different"
fi

Not sure what you wanted, really.
This User Gave Thanks to jim mcnamara For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

8 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Bash -o -v -R operators

I do not know the use of the -o -v -R operators. This is what the info says and I am confused of what optname and varname mean, are they just normal variable? -o optname True if the shell option optname is enabled. See the list of options under the ... (6 Replies)
Discussion started by: kristinu
6 Replies

2. Programming

Combining Operators

Hey everyone, I'm really getting into learning C, but as I look at more advanced example code, I see things like if (!*variable1) blah blah blah... and variable2 ^= *(variable1++); my question is, when you have a combination of two operators, like !*. The ! means 'not' and the *... (2 Replies)
Discussion started by: Lost in Cyberia
2 Replies

3. Homework & Coursework Questions

Operators

I really don't know the meaning of these operators. Could someone explain the meanings? <, <=, ==, !=, >=, >, ||, &&, ! ~ , !~ Thanks! (1 Reply)
Discussion started by: Erjen
1 Replies

4. Shell Programming and Scripting

Operators

I really don't know the meaning of these operators. Could someone explain the meanings so I can make my test for today? <, <=, ==, !=, >=, >, ||, &&, ! ~ , !~ Thanks! (1 Reply)
Discussion started by: Erjen
1 Replies

5. Shell Programming and Scripting

And and OR Operators with If Statement.

Hi All, I have 2 variables. Result1 and Result2. I want to put a condition that if Both are True then echo "All True" Else Show Error. Right now i am doing this and getting error. if ; then echo "All True" else echo "Failed" fi; Error. line 8: ' Solution: Looking for (2 Replies)
Discussion started by: mkashif
2 Replies

6. UNIX for Dummies Questions & Answers

Operators

I am trying to understand Does the following: {tmp+=$10} Mean take $10 and add them all up and call it tmp thanks! (2 Replies)
Discussion started by: llsmr777
2 Replies

7. UNIX for Advanced & Expert Users

If with set operators

Hi guys, I'm trying to run more than one "if" condition at once. What I want is something like if ] or ] or ]; then ... I can't remember the syntax for using this or/and set operators. Can someone please assist/ jog my memory? thanks Khoom (2 Replies)
Discussion started by: Khoomfire
2 Replies

8. UNIX for Advanced & Expert Users

bitwise operators

can anybody write a program to divide a number by another number using bitwise operators (9 Replies)
Discussion started by: areef4u
9 Replies
Login or Register to Ask a Question