Bash 3.2 - Array / Regex - IF 3rd member in array ends in 5 digits then do somthing...


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bash 3.2 - Array / Regex - IF 3rd member in array ends in 5 digits then do somthing...
# 1  
Old 08-26-2013
Bash 3.2 - Array / Regex - IF 3rd member in array ends in 5 digits then do somthing...

Trying to do some control flow parsing based on the index postion of an array member. Here is the pseudo code I am trying to write in (preferably in pure bash) where possible. I am thinking regex with do the trick, but need a little help.

Code:
pesudo code 

if [[ array[3] == ENDSINFIVEINTS ]]; then
	do stuff
fi


Thanks in advance.

---------- Post updated at 01:48 AM ---------- Previous update was at 01:43 AM ----------

I found this regex...
but not sure how to incorporate it

Code:
 ^\d{5}$

# 2  
Old 08-26-2013
Code:
#! /bin/bash

x=( 3214 4567 12345 2134 )

echo ${x[2]} | grep -q -E "^[0-9]{5}$"
if [ $? -eq 0 ]
then
    <do_stuff>
fi

# 3  
Old 08-26-2013
Code:
grep -E [0-9]{5}$

This checks for the last five characters having digits. Note that this will return true if the last 5 or more characters are digits as well.
# 4  
Old 08-26-2013
Code:
case ${array[3]} in *[0-9][0-9][0-9][0-9][0-9]) echo OK;; esac

# 5  
Old 08-26-2013
If you really want to use bash's regex matching, to handle differences in bash versions you'd want to use a variable to hold the regex.

Code:
#!/bin/bash
re='[[:digit:]]{5}$'
a=(0 1 2 12345 1234)

if [[ ${a[3]} =~ $re ]]; then
  echo true
fi

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Sending an array member to file

This may be a dupe, but the problem is not complex,it is simple issue. I can create an array of string(s) located in positioning parameters for further processing. Works as expected. Now I like to send / write each string , space separated words , into a file. Of course I tried... (4 Replies)
Discussion started by: annacreek
4 Replies

2. Shell Programming and Scripting

Fastest alternatives to flattening a non-uniform nested array with regex?

Hello, I'm looking at simplfying a function that flattens an array, it uses recursion and filters objects by type but this seems to be a waste of resources to me at least, using conditionals like this seems like a bad idea. The array can be a generic type, int, string, float but not some... (2 Replies)
Discussion started by: f77hack
2 Replies

3. Shell Programming and Scripting

Bash Array connectin to another Array

Hello, i have a script that i need account_number to match a name. for exsample : ACCOUNT_ID=(IatHG8DC7mZbdymSoOr11w KbnlG2j-KRQ0-1_Xk356s8) and i run a loop curl requst with this the issue is that i want to know on which account were talking about so bash will know this : ... (4 Replies)
Discussion started by: batchenr
4 Replies

4. Shell Programming and Scripting

Bash arrays: rebin/interpolate smaller array to large array

hello, i need a bit of help on how to do this effectively in bash without a lot of extra looping or massive switch/case i have a long array of M elements and a short array of N elements, so M > N always. M is not a multiple of N. for case 1, I want to stretch N to fit M arrayHuge H = (... (2 Replies)
Discussion started by: f77hack
2 Replies

5. Shell Programming and Scripting

Use decimal value of array in bc ends with illegal character

hi all I have to read a long cvs file every 4 columns with decimal "3,45" numbers. The 9th row in this cvs is the first line I need, so it I tail -n+9. I use sed -e 's/,/./g' to get decimal values with . delimiter. So far no problem. Goal is to get two maximum negative forces in ranges... (5 Replies)
Discussion started by: Grille
5 Replies

6. Shell Programming and Scripting

How to insert an array element within regex?

Hello to all, I'm trying to separate the string "str" using a regex within match function. The substrings that I want to separate, begin with 22, 23, 24 or 25 and followed by 12 or 14 characters. And I want to replace 22 with MJS, 23 with UYT, 24 with WER and 25 with PIL. For this string... (4 Replies)
Discussion started by: Ophiuchus
4 Replies

7. Shell Programming and Scripting

Grep: Searching with a regex that contains a variable from an array

I'm attempting to grep for lines formatted like this: grep -e '^\\",' Any suggestions as to why this isn't working? ---------- Post updated at 05:03 PM ---------- Previous update was at 04:17 PM ---------- This was my solution: grep -e '^\'\",' It's hard to read, but basically I... (4 Replies)
Discussion started by: AcerAspirant
4 Replies

8. Shell Programming and Scripting

How do I create an array from a file using every 3rd line

A file contains the following information shown below. Every ceName has 2 consecutive lines that have to be evaluated, using awk, sed, cut (any common unix tools). Input file: ceName: Node-1 processName: tzMgmt Status: PROCESS_NOT_RUNNING ceName: Node-2 processName: tzMgmt Status:... (15 Replies)
Discussion started by: BRH
15 Replies

9. Programming

Creating an array to hold posix thread ids: Only dynamic array works

I am facing a strange error while creating posix threads: Given below are two snippets of code, the first one works whereas the second one gives a garbage value in the output. Snippet 1 This works: -------------- int *threadids; threadids = (int *) malloc (num_threads * sizeof(int)); ... (4 Replies)
Discussion started by: kmehta
4 Replies

10. Shell Programming and Scripting

perl: storing regex in array variables trouble

hi this is an example of code: use strict; use warnings; open FILE, "/tmp/result_2"; my $regex="\\ Starting program ver. (.*)"; my $res="Program started, version <$1> - OK.\n"; while (<FILE>) { if ($_ =~ /($regex)/) { print "$res"; } } close FILE; This finds $regex and print... (3 Replies)
Discussion started by: xist
3 Replies
Login or Register to Ask a Question