Sponsored Content
Top Forums Shell Programming and Scripting Using nested for loop to iterate over file names Post 302932508 by Don Cragun on Thursday 22nd of January 2015 04:22:59 AM
Old 01-22-2015
Telling us what OS and shell you're using helps us create a solution that will work in your environment.

With a 1993 or later version of ksh or with a recent bash, here are a couple of ways to do what you seem to want:
Code:
#!/bin/ksh
files=( AAA BBB CCC DDD EEE FFF GGG HHH III JJJ KKK LLL MMM NNN OOO PPP QQQ)

total=${#files[@]}
echo "Total files in array : $total"

echo 'Using nested for loops...'
fileset=""
for (( i = 0 ; i < total ; i += 5 ))
do	for ((j = 0; j < 5 && (i + j) < total; j++))
	do	fileset="$fileset ${files[i + j]}"
	done
	echo $fileset
	fileset=""
done

echo 'Using array subsets...'
for ((i = 0; i < total; i += 5))
do	fileset="${files[@]:i:5}"
	echo "$fileset"
done

which (with both of those shells) produces the output:
Code:
Total files in array : 17
Using nested for loops...
AAA BBB CCC DDD EEE
FFF GGG HHH III JJJ
KKK LLL MMM NNN OOO
PPP QQQ
Using array subsets...
AAA BBB CCC DDD EEE
FFF GGG HHH III JJJ
KKK LLL MMM NNN OOO
PPP QQQ

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

File Names in a Variable in a loop

Hi All , I am having confusion in a shell script. Please guide me. I need to get multiple files (number of files vary time to time, file names are separated by '|') using FTP get from the remote server. Actually, i call the FTP function in a loop. At the last step, i need to move all the get... (3 Replies)
Discussion started by: spkandy
3 Replies

2. Shell Programming and Scripting

Problem with File Names under tcsh loop

Hello, I have a question regarding file naming under a loop in tcsh. I have the following code: #!/bin/tcsh foreach file (test/ProteinDirectory/*) # The * is a bunch of ProteinFile1, ProteinFile2, ProteinFile3, etc. sh /bioinfo/home/dgendoo/THREADER/pGenThreader.sh $file $file ... (4 Replies)
Discussion started by: InfoSeeker
4 Replies

3. Shell Programming and Scripting

big xml file with nested loop parse

I have an xml file with the structure: <tag1> <value1>xyx</value1> <value2>123</value2> </tag1> <tag1> <value1>568</value1> <value2>zzzzz</value2> </tag1> where I want to parse each data pair in the this single file, so something like: find first tag1 data pair... (1 Reply)
Discussion started by: unclecameron
1 Replies

4. Shell Programming and Scripting

How to loop(Iterate) through List with foreach(csh)

Hey all,, I know cshell is harmful:) but I am using this just "to know" - for educational purposes!... not for a long-term use. lets say i have a list.. set arr=(x y z e f) I wanna iterate the list with foreach ,, not with while.!! foreach i $arr echo $i end does not work (2 Replies)
Discussion started by: eawedat
2 Replies

5. UNIX for Dummies Questions & Answers

Iterate/Loop Through XML Node List

I need to load an XML file and loop through a list of nodes in it to execute a shell script for each one using the attributes for each node as parameters for the script. Any ideas? Any help will be much appreciated. (1 Reply)
Discussion started by: bradlecat
1 Replies

6. Shell Programming and Scripting

Do loop doesn't iterate

I'm trying to send the file list as parameter to another job and execute it. But the loop doesn't work, the inner job is running only once and not twice as expected for filelist in $(ls -rt *.txt | tail -2) do echo $filelist export filelist cmd="$Program -config $configfile -autoexec... (11 Replies)
Discussion started by: asandy1234
11 Replies

7. Shell Programming and Scripting

Iterate array using loop over ssh

A simple script: #!/bin/bash test=test test1=(test1 test2 test3) echo ${test1 } ssh server 'echo '$test'; echo '${test1 }' ; echo '${test1}' ; for m in $(seq 1 $(echo '${test1 }' | tr " " "\n" | wc -l)); do echo $m ; echo '${test1}'; done'Here is the result: test1 test2 test3 testing... (5 Replies)
Discussion started by: mharald
5 Replies

8. Shell Programming and Scripting

Print file names in a loop

OS : RHEL 6.1 Shell : Bash I have lots of files in /tmp/stage directory as show below. Using a loop, I need to print all the filenames in this directory except those ending with a number. How can I do this ? # pwd /tmp/stage # # # ls -l * -rw-r--r--. 1 root root 0 Oct 7 18:38 stmt1... (2 Replies)
Discussion started by: kraljic
2 Replies

9. Shell Programming and Scripting

While loop a file containing list of file names until the files are found?

Hi, I have a control file which will contain all filenames(300) files. Loop through all the file names in the control files and check the existence of this file in another directory(same server). I need to infinitely(2 hrs) run this while loop until all the files are found. Once a file is found,... (5 Replies)
Discussion started by: laknar
5 Replies

10. Programming

FORTRAN: Loop over variable file names

Hi guys I'm a beginner in fortran. So excuse me for my naivety, let me briefly describe what I was trying to do. I have let's say 2 files named reac-1 and reac-2. After opening these files I've to do some calculations, close these files and open the same files again in a loop. So my faulty code... (6 Replies)
Discussion started by: saleheen
6 Replies
advfs_get_fset_quotas(3)				     Library Functions Manual					  advfs_get_fset_quotas(3)

NAME
advfs_get_fset_quotas - Obtains fileset quotas for an AdvFS fileset SYNOPSIS
#include <sys/advfs_syscalls.h> int advfs_get_fset_quotas( char *domainName, char *filesetName, filesetQuotasT *filesetQuotas ); LIBRARY
AdvFS Library (libadvfs) PARAMETERS
A pointer to the name of the domain. A pointer to the name of the fileset. A pointer to a structure that will contain the fileset quotas on successful return from this function. DESCRIPTION
This function obtains the fileset quotas for the fileset specified by the domainName and filesetName parameters and returns them in the structure specified in *filesetQuotas. NOTES
Note that the advfs_get_fset_quotas function does not obtain: user or group quota information grace time information Use the quotactl system call to obtain such data. See the quotactl(2) reference page for information. Clone filesets cannot have fileset quotas. If you attempt to obtain fileset quotas for a clone fileset, an error occurs. RETURN VALUES
The function returns a value of 0 (zero) on successful completion. The function returns a value of -1 on failure and sets the value of errno to the specific error. ERRORS
The function sets errno to the specified errors for the following failure conditions: The calling program is not running with root privi- leges. An I/O error occurred on one of the disks in the file domain. The filesetId parameter does not refer to an existing fileset. There is not enough memory available for the operation. SEE ALSO
Commands: chfsets(8), showfsets(8) Functions: quotactl(2), advfs_set_fset_quotas(3) advfs_get_fset_quotas(3)
All times are GMT -4. The time now is 10:08 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy