Bash: Reading out rows of a file into a dynamic array and check first literal


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Bash: Reading out rows of a file into a dynamic array and check first literal
# 1  
Old 07-31-2009
Bash: Reading out rows of a file into a dynamic array and check first literal

Hello,

i have a file "Movie.ini" looking e.g. like follows

Code:
* MOVIE A
bla bla
MOVIE B
blubb blubb
MOVIE C

I'd like to read the file "Movie.ini" with cat and grep and check whether it includes the string MOVIE only with a '*' at the beginnig.

By doing
Code:
"cat Movie.ini| grep MOVIE >> tmp_MOVIE "

all rows containing MOVIE should be saved in a tempfile
Code:
* MOVIE A
MOVIE B
MOVIE C

I have following problem, since I just know a bit ksh but not bsh:

1. How can I read out the rows of the file "tmp_MOVIE" in a VARIABLE long / dynamic allocated array? (Since there is NOT a fix number of rows containing the string MOVIE - it can be 3, 5 or e.g. 20)
2. How can I check the first literal of an array-element whether it is a '*'?

Thanks a lot for any helpful answer

Please use CODE tags next time when displaying code, data or logs to enhance readability and to preserve formatting like indention etc., ty.

Last edited by zaxxon; 07-31-2009 at 12:37 PM.. Reason: code tags
# 2  
Old 07-31-2009
I believe that one grep would be sufficient:

Code:
grep '^* MOVIE' Movie.ini

# 3  
Old 07-31-2009
Hello Thanks,

I'll try it, but how can I handle assigning a dynamic number of stings into arrays?
# 4  
Old 07-31-2009
Why do you think you need an array?

Last edited by radoulov; 07-31-2009 at 05:35 PM..
# 5  
Old 07-31-2009
I want to read out ALL appearances of the string 'Movie' and check whether they ALL beginn with a '*'. So I think I need an array with a DYNAMIC number of fields since they number of 'Movie'-string varies.
# 6  
Old 07-31-2009
grep will search for the pattern specified in it ( "^ * MOVIE" in your case ) in the whole file and whenever it finds, it will print the whole line.

so you don't need array.

Code:
man grep

for more details. also
Code:
man regex

# 7  
Old 07-31-2009
But I think I need an array, because I want to check within a script if there is MOVIE without '*' and if there is a MOVIE without '*', a mail will be send. That part is already written and running, I just need a working if-clause.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Check for empty line at end of a dynamic header in each file

Hi Folks, I have a requirement to develop a shell script. PFB my requirement, Requirement: I need to check an empty line after the end of each header in respective file and if a empty line is present simply echo file OK and if empty line is not present echo "Adding empty line" and add an... (6 Replies)
Discussion started by: tpk
6 Replies

2. Shell Programming and Scripting

Reading a long literal continued next line

I am trying to identify all messages or prompts from a number of COBOL programs and they can usually be identified by a pair of double quotes on one line. However, sometimes the literal will not be finished on the first line but after a dash in column 7 of the next line, the literal will be... (6 Replies)
Discussion started by: wbport
6 Replies

3. Shell Programming and Scripting

Help w/ Reading Matrix & Storing in dynamic array

First of I would just like to state that I am not looking for you guys to just do my work for me, I do want to learn and actually understand everything that is happening. Hey all, I am having trouble on this. What I need to do is... Write an executable C file that will take a text file (not a... (8 Replies)
Discussion started by: innvert
8 Replies

4. Shell Programming and Scripting

Reading a file into an array

Hi I have a file with contents as below : server | ABC Issue : File System Missing XYZ Issue : Wrong Syntax PQR Issue : Old File to be removed Now I am looking for an o/p similar to server <tab> ABC Issue : File System Missing <tab> XYZ Issue : Wrong Syntax <tab>... (4 Replies)
Discussion started by: deo_kaustubh
4 Replies

5. Shell Programming and Scripting

Reading a file into array

Hi, I need to read a file into array and print them in a loop:- 1st file :-cat a.txt RC1 RC2 RC3 RC4 My Program:- #!/bin/ksh index=0 while do read cnt<a.txt print "cnt value is ${cnt} index=`expr $index + 1` done Code tags for code, please. (5 Replies)
Discussion started by: satishmallidi
5 Replies

6. Shell Programming and Scripting

reading data from a file to an array

I need some help with this code below, i doesnt know why it will run twice with my function, but my function only got if else, any other way that can read line and put into array? while read line; do read -A array <<<$line n=${#array} for ((i=1;i<$n;i++)); do print... (1 Reply)
Discussion started by: gavin_L
1 Replies

7. Shell Programming and Scripting

Reading from a file and assigning to an array in perl

I wrote a simply perl that searched a file for a particualr value and if it found it, rite it and the next three lines to a file. Now I have been asked to check those next three lines for a different value and only write those lines if it finds the second value. I was thinking the best way to... (1 Reply)
Discussion started by: billprice13
1 Replies

8. UNIX for Dummies Questions & Answers

Reading a file into an array

I have a file that is a text file, how to get all the words into and array, i am able to get each line but not each word :(. Here is what i searched and already found...https://www.unix.com/shell-programming-scripting/99207-pipe-text-file-into-array.html. This one reads a whole line into... (6 Replies)
Discussion started by: SasankaBITS
6 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

Is there any commands to check the dynamic changes of a file

Hi guys i had a script which will generate a log file.Is there any commands to check the dynamic changes in the log file,i.e if i open the log file i should able to see the updating changes live...I hope u understand my query... (2 Replies)
Discussion started by: vinoo
2 Replies
Login or Register to Ask a Question