Shell script for 2 arrays


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Shell script for 2 arrays
# 1  
Old 05-09-2010
Shell script for 2 arrays

I have 2 arrays abc and xyz

abc = ( a b c d e f g h i j k l m n o p q r s t u v w x y z )

and

xyz = ( b c d e f )

lets assume a .... z are the file name.

I have to perform a pattern replacement on each file present in abc array accept the files i have in xyz array. and i am doing the update one each file one at a time.

how do i achieve this in shell script?

i might use a for loop for updating each file
for i in ${abc[@]}
do
.....
but if $i also exist in xyz array don't perform the task or update
done
# 2  
Old 05-09-2010
MySQL

Hi kukretiabhi13

Like this so you mean?

Code:
#!/bin/bash
abc=( "a" "b" "c" "d" "e" "f" "g" "h" "i" "j" "k" "l" "m" "n" "o" "p" "q" "r" "s" "t" "u" "v" "w" "x" "y" "z" )
xyz=( "b" "c" "d" "e" "f" )
 
for i in ${abc[@]}
  do
     for ix in ${xyz[@]}
       do
        if [ "$i" == "$ix" ] ; then
         echo $i
        fi
       done
  done

Code:
[root@rhnserver ~]# ./del
b
c
d
e
f

# 3  
Old 05-09-2010
The following script proceeds the files from array abc but excludes the files from array xyz.
Code:
#!/usr/bin/bash

abc=( a b c d e f g h i j k l m n o p q r s t u v w x y z )
xyz=( b c d e f )

for file in "${xyz[@]}"
do
   exclude="${exclude}§${file}§"
done

for file in "${abc[@]}"
do
   if [[ "${exclude}" == *§${file}§* ]]
   then
      echo "Ignore file ${file}"
      continue
   fi
   echo "Proceed file ${file}"
done

Output:
Code:
Proceed file a
Ignore file b
Ignore file c
Ignore file d
Ignore file e
Ignore file f
Proceed file g
Proceed file h
Proceed file i
Proceed file j
Proceed file k
Proceed file l
Proceed file m
Proceed file n
Proceed file o
Proceed file p
Proceed file q
Proceed file r
Proceed file s
Proceed file t
Proceed file u
Proceed file v
Proceed file w
Proceed file x
Proceed file y
Proceed file z

Jean-Pierre.
# 4  
Old 05-09-2010
Thanks your solution is working but i cannot understand this part.

exclude="${exclude}§${file}§"
and
if [[ "${exclude}" == *§${file}§* ]]
# 5  
Old 05-09-2010
The following code builds the list of files to be excluded, the character § surrounds each file inside the list:
Code:
for file in "${xyz[@]}"
do
   exclude="${exclude}§${file}§"
done

The resulting value of the variable exclude is §a§§b§§c§§d§

This following statement tets if the file is present inside this list:
Code:
if [[ "${exclude}" == *§${file}§* ]]

Hope this will help you.

Jean-Pierre.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Linux/Shell script - How to compare 2 arrays based on patterns and get the differences

I have FILE 1 (This file has all master columns/headers) A|B|C|D|E|F|G|H|STATUS FILE 2 A|C|F|I|OFF_STATUS 3|4|5|4|Y 6|7|8|5|Y Below command give me all headers of FILE 2 into array2.txt file paste <(head -1 FILE2.txt | tr '|' '\n')>array2.txt So I would like to compare... (2 Replies)
Discussion started by: jmadhams
2 Replies

2. Shell Programming and Scripting

Need help in creating arrays using shell

Hi, I need help in creating a array in shell scirpt. I have a file which has following details. hostname devices device1 device 2 de abcdmhs10 1234 2343 2353 3343 3435 2343 bcdfmhs11 2343 2443 3434 8874 0343 3434 (5 Replies)
Discussion started by: jpkumar10
5 Replies

3. Shell Programming and Scripting

Shell arrays need help

Ok so spaces separate elements. What if you wanted an element to have a space in it? For instance: nums="one two three and a half" where "three and a half" is THE SAME element? (3 Replies)
Discussion started by: stevenswj
3 Replies

4. Shell Programming and Scripting

Using arrays in shell

I have three arrays. One is Master array and that has list of other array in config file. for e.g (for simplicity I have only defined array with 2 elements each) set +A MASTERARRAY SQLUPDATE_ONETIME SQLUPDATE_DAILY END_OF_ARRAY set +A SQLUPDATE_ONETIME update12 update22 END_OF_ARRAY... (4 Replies)
Discussion started by: anish
4 Replies

5. Shell Programming and Scripting

arrays in C shell

hi guys, i have the following code in C shell.. set i=0 while ($i < 11) master_array=${ARRAY} i++ done it gives me error at line 3: Variable syntax. what is wrong here? any help is appreciated. (4 Replies)
Discussion started by: npatwardhan
4 Replies

6. Shell Programming and Scripting

I need help with arrays in C Shell

Hi guys could you please post links that explain how to use and manipulate arrays in c shell (.csh files) ? examples are useful too :rolleyes: (5 Replies)
Discussion started by: domain
5 Replies

7. Shell Programming and Scripting

C shell arrays

how do you declare an array in the C shell and loop through each element? (2 Replies)
Discussion started by: npatwardhan
2 Replies

8. Shell Programming and Scripting

shell / awk arrays

I have a bash shell script that sources a data file, the data file has array values such as: #--data file ---# sg_name="db1" sg_size="12892" sg_allow="50000" sg_name="db2" sg_size="12892" sg_allow="50000" export sg_name sg_size sg_allow #--end data file --# In my shell script... (8 Replies)
Discussion started by: lochraven
8 Replies

9. Shell Programming and Scripting

how to use arrays in c shell

hi :) i need help to explain arrays 2D in c shell like this in c++ int a (6 Replies)
Discussion started by: hgphsf
6 Replies

10. Shell Programming and Scripting

arrays in shell script

Hi, can we use arrays in shell script? I have this so far: #!/bin/sh isql -Usa -P -S DBSERVER -o output << EOF sp_transactions "state", "prepared", "xactname" go / EOF the file 'output'' will be have many entries and I want to caputre the transaction names only: grep 000 output works... (3 Replies)
Discussion started by: melanie_pfefer
3 Replies
Login or Register to Ask a Question