File names as array element in ksh


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting File names as array element in ksh
# 1  
Old 10-09-2014
Linux File names as array element in ksh

Hi, I have an ksh array(ARR). the elements to the array are file names. i need to go to each file in the array and manipulate the records.

Code:
for name in ${files[@]}; do   ---this loop is for all the file names in the array
	for i in $(wc -l < $name); do       --this loop is for all the records in one                   
                                                             array element(i.e.file)
	sed 's/^.*Member //; s/Not Found In Database.*$//' <<<
                                        -----after <<< , i need to get each record value 
	done
done


could anyone pls suggest on how to get each record in a file.

Last edited by usrrenny; 10-09-2014 at 08:53 PM.. Reason: Add CODE tags.
This User Gave Thanks to usrrenny For This Post:
# 2  
Old 10-09-2014
Perhaps something like this:

Code:
for name in ${files[@]}
do
   sed  's/^.*Member //; s/Not Found In Database.*$//' $name |
   while read line
   do
       #  --- Do something with $line in here
   done
done

# 3  
Old 10-10-2014
Thanks Chubler_XL for ur reply. I tried the option u suggested. But its hanging. moreover i want the sed statement inside the while loop. so when i tried the below, it didnt work.
Pls note that, name is a file name. while loop should loop for all records inside the file.

Code:
for name in ${files[@]}
do
   while read line
   do
   sed  's/^.*Member //; s/Not Found In Database.*$//' $line |
   done
done

# 4  
Old 10-10-2014
No, the for loop content needs to leverage '$name'.

Either 'sed' or 'while read <vars>' can read a file, but it is wasteful to call sed for every line.

If the file name is not part of output, you can "sed '<script>' <list_of_files> | . . ." so one sed does all. If you can use sed (or awk) to manipulate, you are done. What sort of manipulate do you want?
# 5  
Old 10-10-2014
Hi DGPickett,
I wanted to extract one string from all the records of the file. I am able to achieve that now. Now i can write the values to array. now i need to send this by mail. Is it possible to send array value in mail body or i need to write the array elements to a file n then send the file as attachment. Pls suggest.
# 6  
Old 10-10-2014
A popular file to send, inside email or as an attachment, is CSV (comma separated value). It reads into Excel, Access and such. It supports a 2 dimensional table or matrix, with commas separating columns and cr-lf separating rows (but either is usually sufficient). "If a cell contains ',', it needs to be double quoted." "If a cell has a double quote, it needs to be doubled ""." Name it whatever.csv and away you go. If you are " and , free, it is very simple.
# 7  
Old 10-10-2014
Hi DGPickett, Now i am able to write the array to a file and send the file as attachment in mail. I have one column in my file coz i am writing one dimensional array to file. i know we cant make multi-dimensional array in kxh. is there any other way we can write 2 columns in the file.
now my file contains:
Code:
a
b
c

can i achieve the below in my file?
Code:
a a.txt
b b.txt
c c.txt

Moderator's Comments:
Mod Comment Please use CODE tags for sample input and output as well as for code segments.

Last edited by Don Cragun; 10-10-2014 at 10:58 PM.. Reason: Add CODE tags.
Login or Register to Ask a Question

Previous Thread | Next Thread

9 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Unset array element and save to file in Bash

#!/bin/bash X=(2H 4S 10D QC JD 9H 8S) How do I unset the 10D from this array and save it to a file? Please use CODE tags as required by forum rules! (5 Replies)
Discussion started by: cogiz
5 Replies

2. Shell Programming and Scripting

Not able to call an element from an array in ksh

Hi, I have: # Initialize variables #!/usr/bin/ksh FILENM=$1 INDEX=0 # read filename echo "You are working with the Config file: $FILENM" while read line do echo $line data=$line ((INDEX=INDEX+1)) done <"$FILENM" (3 Replies)
Discussion started by: Marc G
3 Replies

3. Shell Programming and Scripting

ksh insert element in array

Hi all, I need help with the following scenario in ksh. If the number of elements contained by arrayA is 11 I need to insert a zero as the element arrayA then print all arrayA elements separated by comma. Appreciate your help. (9 Replies)
Discussion started by: ejianu
9 Replies

4. Emergency UNIX and Linux Support

Assigning zero to element of ksh array.

set -A matched #find referenced files. for i in ${file_names_html} do counter_j=0 for j in ${file_names_minus_index} do match=`cat $i | grep... (1 Reply)
Discussion started by: robin_simple
1 Replies

5. Shell Programming and Scripting

how to assign file names to array variable?

I wish to assign file names with particular extention to array variables. For example if there are 5 files with .dat extention in /home/sam then i have to assign these 5 files to an array. plz help me how to accomplish this. Thanks in advance. (4 Replies)
Discussion started by: siteregsam
4 Replies

6. Shell Programming and Scripting

Problem to initialize ksh array when first element includes hyphen

Hi I'm trying to create an array with variable including hyphen but ksh refuses the first element set -A allArgs set +A allArgs ${allArgs} -all set +A allArgs ${allArgs} -date set +A allArgs ${allArgs} test ./test.ksh: -all: bad option(s) It happens only when first element is like... (4 Replies)
Discussion started by: gdan2000
4 Replies

7. Shell Programming and Scripting

Creating array containing file names

I am wondering how I can save the file names (stored in $file or $fnames) in array which I can access with an index. alias MATH 'set \!:1 = `echo "\!:3-$" | bc -l`' set narg = $#argv while ($iarg < $narg) MATH iarg = $iarg + 1 set arg = $argv set opt = ` echo $arg | awk... (1 Reply)
Discussion started by: kristinu
1 Replies

8. Shell Programming and Scripting

Find Directory from array of file names with paths

I have a script that generates a variable with the location of a file and its complete path. What i want to do is to "cd" to the directory where that file is located using the path name of the file. GIS has absolutely failed me. For example when i run my script it generates a variable called... (1 Reply)
Discussion started by: Knome
1 Replies

9. Shell Programming and Scripting

Adding array element in KSH

All, I would like to add the first 10 elements of an array. Here is how I am doing it now (only included first few add ops): #!/usr/bin/ksh ###Grab the array values out of a file### TOTAL=`awk '/time/' /tmp/file.out | awk '{print $4}'` set -A times $TOTAL SUM=$((${times} + times... (3 Replies)
Discussion started by: Shoeless_Mike
3 Replies
Login or Register to Ask a Question