Help for applying same actions to different directories with identical sub-directories


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
Special Forums UNIX Desktop Questions & Answers Help for applying same actions to different directories with identical sub-directories
# 1  
Question Help for applying same actions to different directories with identical sub-directories

Hello all

I have a situation and would be grateful if you will help me... I am not sure whether it is even possible

I have few folders/directories ---e.g. A - B - C -in my MAIN directory
for each of them I would get the data from folder called DATA and go through a long list of actions which involves creating new sub-directories.
So e.g. will run a program for A -> creating 5 new sub-directories - doing some calculations and getting some results out
the same happens for B and C
I have tried to put an FOR loop around it which seems to work if I only have one of them there as the address for the directories will get confusing as my program refers to sub-directories in the A,B,C
Code:
###for A
FILES="A/*"
for X in $FILES
do
FILES="data/*"
for X in $FILES
.
.
.
done
##for B
FILES="B/*"
for X in $FILES
do
FILES="data/*"
for X in $FILES
.
.
.
done

Now my problem is how to adapt it so when I am on MAIN, I can run all of them at the same time and related directories would be created inside each of them separately ...
the Path seems something like this
Code:
MAIN/A/ ->  data, id, count, count/result
MAIN/B/ ->  data, id, count, count/result
MAIN/C/ ->  data, id, count, count/result

I am not sure whether something like this is possible ... or they might be a very simple solution but my mind is not supporting now
Thank you in advance
Anna

Last edited by A-V; 01-28-2013 at 11:29 AM..
# 2  
Is this what you are trying to acheive?
Code:
for dir in A B C
do
    mkdir -p ${dir}/data; mkdir -p ${dir}/count; mkdir -p ${dir}/count/result;
done

# 3  
I will try to explain with an example
I have one main folder with unknown number of folder in them, e.g. A,B,C, ...
but all of them have the same sub-folder structure in them
like each them have a folder called Basic which has the original data in it
I have the following code for sentence count ---
Code:
FILES="basic/*"
for X in $FILES
do
	name=$(basename $X) 
		#sentence-count
	awk '{ total+=gsub(/[\.]/," ", $0); next}
	END{print FILENAME,",",total} ' $X 
done > sentence-count.csv

now instead of calling this from each A,B,C path I want to call this from the main folder to automatically do it for all of them
Code:
FILES="Main/*"
for X in $FILES
do
#### the problem is here ######
FILES="basic/*"
for X in $FILES
do
	name=$(basename $X) 
		#sentence-count
	awk '{ total+=gsub(/[\.]/," ", $0); next}
	END{print FILENAME,",",total} ' $X 
done > sentence-count.csv ### and here as each folder should has its own file
done

I dont know how I should address the PATHS to read all of the folders after main folder
Code:
FILES="*/basic/*"

Seems to work but when it comes to I don't know what to do to have one per folder
Code:
Main/A/sentence-count.csv
Main/B/sentence-count.csv
....


Last edited by A-V; 01-29-2013 at 10:10 AM..
# 4  
Use find command to gather the list of all sub-directories or files:
Code:
for dir in $( find . -type d )
do
   ....
done

OR
Code:
for file in $( find . -type f )
do
   ....
done

# 5  
I know all of them because I created them
Basically I have to repeat same actions for few folders with same structure
So I want to put them all in one directory and put a loop around the code to run all of them together to easy my job
or at least thats what I wish for
# 6  
see modification below ...
Code:
cd /main
for DIR in */basic
do
    for FILE in $DIR/*
    do
         NAME=$(basename $FILE)
         awk '{ total+=gsub(/[\.]/," ", $0); next}
         END{print FILENAME,",",total}' $FILE
    done > $DIR/sentence-count.csv
done

This User Gave Thanks to Just Ice For This Post:
Login or Register for Dates, Times and to Reply

Previous Thread | Next Thread
Thread Tools Search this Thread
Search this Thread:
Advanced Search

Test Your Knowledge in Computers #13
Difficulty: Easy
EBCDIC, ASCII, SIXBIT, and ANSI are methods for encoding text characters on a computer.
True or False?

9 More Discussions You Might Find Interesting

1. Solaris

Giving read write permission to user for specific directories and sub directories.

I have searched this quite a long time but couldn't find the right method for me to use. I need to assign read write permission to the user for specific directories and it's sub directories and files. I do not want to use ACL. This is for Solaris. Please help. (1 Reply)
Discussion started by: blinkingdan
1 Replies

2. Shell Programming and Scripting

Chksum on two directories then copy if they are not identical or existing

How can I have an intelligent script that will copy from source to destination directory if the file doesnt exist there or the chksum is not match. SOURCE directory: for i in `ls` > do > echo $i > md5sum $i > echo "" > done asdasda 00039a616135792fb609d04cf27aed95 asdasda ... (5 Replies)
Discussion started by: kenshinhimura
5 Replies

3. UNIX for Dummies Questions & Answers

List the directories, having given pattern in the directories name, sorted by creation date

It is for HP-Unix B.11.31. Requirement: 1. List the directories, having given pattern in the directories name, sorted by creation date. Example: Directories with name "pkg32*" or "pkg33*" 2. On the output of 1. list the directories by creation date as sort order, with creation date... (2 Replies)
Discussion started by: Siva SQL
2 Replies

4. Shell Programming and Scripting

How to list all the files, directories and sub-directories in the current path except one directory?

Can anyone come up with a unix command that lists all the files, directories and sub-directories in the current directory except a folder called log.? Thank you in advance. (7 Replies)
Discussion started by: Manjunath B
7 Replies

5. UNIX for Dummies Questions & Answers

Using grep command to find the pattern of text in all directories and sub-directories.

Hi all, Using grep command, i want to find the pattern of text in all directories and sub-directories. e.g: if i want to search for a pattern named "parmeter", i used the command grep -i "param" ../* is this correct? (1 Reply)
Discussion started by: vinothrajan55
1 Replies

6. Shell Programming and Scripting

How to list all the directories, sub directories in a mount along with size in ascending order?

Hi , I am very new to unix as well as shell scripting. I have to write a script for the following requirement. In a particular mount, have to list all the directories and sub directories along with size of the directory and sub directory in ascending order. Please help me in this regard and many... (4 Replies)
Discussion started by: nmakkena
4 Replies

7. Shell Programming and Scripting

Script for parsing directories one level and finding directories older than n days

Hello all, Here's the deal...I have one directory with many subdirs and files. What I want to find out is who is keeping old files and directories...say files and dirs that they didn't use since a number of n days, only one level under the initial dir. Output to a file. A script for... (5 Replies)
Discussion started by: ejianu
5 Replies

8. Shell Programming and Scripting

check if multiple directories exist else create missing directories

Hi , I 'm trying to check if multiple directories exist on a server, if not create the missing ones and print " creating missing directory. how to write this in a simple script, I have made my code complex if ; then taskStatus="Schema extract directory exists, checking if SQL,Count and... (7 Replies)
Discussion started by: ramky79
7 Replies

9. UNIX for Dummies Questions & Answers

du -s -k differences between two identical directories

I tarred a directory from a linux server to a solaris server. When I do a du -s -k on the directory, I get almost 150k difference in the file sizes. If I do a ls | wc -l, it is the same. If I look at the size of the individual files, it is the same. I did an ls on the 2 directories and... (6 Replies)
Discussion started by: csgonan
6 Replies

Featured Tech Videos