Find files in directory and its subdirectory


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Find files in directory and its subdirectory
# 8  
Old 01-24-2008
I have posted my code:

#!/usr/bin/ksh

echo "Test Script: Read Data from file, myfile.txt"
cat test.txt | while read line
do
var=$line
var1=`awk 'END { print substr(val,1,10) }' val=$var < /dev/null`
var2=`awk 'END { print substr(val,12,21) }' val=$var < /dev/null`
echo $var1
echo $var2
var3=$var1"_"$var2.jpg
echo $var3
cd /some/path
find . -name $var3 -print
if [ $? -eq 0 ]; then
rm $var3
fi
cd /some/other/path
done

I would really appreciate if someone can help me .

Thanks.

Last edited by jyotib; 01-24-2008 at 01:33 PM..
# 9  
Old 01-24-2008
Hey it does finds the file but does not removes it from that directory, it gives an error

1234567890_3456789012.jpg
/some/path/1234567890_3456789012.jpg
find: cannot execute rm{}:: No such file or directory

This is what I did in my script

var3=$var1"_"$var2.jpg
echo $var3
find /some/path -name "$var3" -print -exec rm{} \;

If someone could clarify this command, that would be great.

Thanks.

Last edited by jyotib; 01-24-2008 at 01:32 PM..
# 10  
Old 01-24-2008
There needs to be a space between rm and {}
# 11  
Old 01-24-2008
Thanks for your help everybody, my script is working fine now, I wasn't doing it right.
I wrote this command and its working fine, its searching for files with filename in some directory and deleteing it from there.

find /some/path -name "$filename" -exec rm {} \;

Thanks again.
# 12  
Old 01-24-2008
Nice going!

But just a hint. Shouldn't ksh be able to extract substrings internally, so that You don't have to call awk so often? Especially in a loop and with a lot of files. You may save SECONDS! Try to find it, in bash it would be something like

Code:
var1=${var:1:10}

instead of

Code:
var1=`awk 'END { print substr(val,1,10) }' val=$var < /dev/null`

(not sure about Your indexing...)

or even as an extension:
Code:
var3=${var:1:10}"_"${var:12:21}.jpg

instead of

Code:
var1=`awk 'END { print substr(val,1,10) }' val=$var < /dev/null`
var2=`awk 'END { print substr(val,12,21) }' val=$var < /dev/null`
var3=$var1"_"$var2.jpg


I still think it's clear enough and probably a lot faster.

But qneill's post is very valid, when developing scripts, it is good to save intermediary results, so You can run the "first" part and check to see that these really are the files You want to affect. And then operate on that set. And so on. It may even be more efficient.

Good Luck!

/Lakris
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Remove all files except the subdirectory(without pattern) in a directory

I used rm * and it deleted the files in the directory but gives and error message for unsuccessful subdirectory deletion. "rm: cannot remove 'DirectoryName': Is a directory" I dont want to explicitly get the above error. What are the modifications I have to do in the rm command? (3 Replies)
Discussion started by: duplicate
3 Replies

2. Shell Programming and Scripting

Globbling files in the direct subdirectory of the current directory

I want to list files that end with .c in the direct subdirectory of the current directory. I have tried the following command: find ./ -mindepth 2 -maxdepth 2 -name "*.c" Is that right? Or is there any easier way to handle that problem? Another problem is that I want to grep in a file to find... (5 Replies)
Discussion started by: Ray Sun
5 Replies

3. Shell Programming and Scripting

Changing ownership of a directory, subdirectory and files as same as in another server

accidentally i have changed ownership of a directory,subdirectory and files wil below command. I want to the change ownership back as same as in same directory on another server. How can i do it? chown -R user:group /u01 is there any simple script? it is really an urgent need.. (2 Replies)
Discussion started by: johnveslin
2 Replies

4. Solaris

Display the number of files in a directory and recursively in each subdirectory

Display the number of files in a directory and recursively in each subdirectory To look something like below, for example /var 35 /var/tmp 56 /var/adm 46Any ideas how can we do this? Got a sun cluser global mount point which takes ages to mount everytime, need to understand... (5 Replies)
Discussion started by: jakerock
5 Replies

5. Solaris

Display the number of files in a directory and recursively in each subdirectory

Display the number of files in a directory and recursively in each subdirectory To look something like below, for example /var 35 /var/tmp 56 /var/adm 46 Any ideas how can we do this? :wall: (1 Reply)
Discussion started by: jakerock
1 Replies

6. Shell Programming and Scripting

Move all files not in a directory into a subdirectory named for each given file

Hi Everyone! Looking for some help with a script that will take all files in any given root folder (which are not already in a folder) and put them into separate folders with the name of each given file. Any ideas? Thank you! (1 Reply)
Discussion started by: DanTheMan
1 Replies

7. UNIX for Dummies Questions & Answers

How to Find files in subdirectory?

I am trying to find all DAT files in a subdirectory named IN. I do not know the entire path. For example: /stage/<?>/<?>/IN/file.DAT I am using the find command without success: find /stage -name IN -a -name '*.DAT' -print What is the correct logic and syntax? Thank you for the help. (5 Replies)
Discussion started by: TwinGT
5 Replies

8. Shell Programming and Scripting

How can i find a word inside a file from a directory and it's subdirectory ?

Suppose i have a word "mail". I have to search this word in all files inside a directory and it's sub-directories. It will also search in all hidden directory and sub-directories. If it finds this word in any file it will list that file. How can i do this with perl/ruby/awk/sed/bash or... (9 Replies)
Discussion started by: cola
9 Replies

9. UNIX for Dummies Questions & Answers

How to move all files in a directory and subdirectory?

I'm trying to organize my MB Pro by moving all my jpeg files to a single folder from the desktop. There are some on the desktop that are not in any folder. I was at the command line and typed mv *.jpg "Jpeg files" but it only moved the files that were on the desktop, not any of the ones that... (3 Replies)
Discussion started by: Straitsfan
3 Replies

10. Shell Programming and Scripting

Find command, -name by directory and subdirectory?

Hi All, I'm trying to use the find command to return matches for a directory and file. For example, given the following directories: /one/two/three/file1.txt /one/three/two/file1.txt /one/four/two/three/file1.txt I'm expecting the following to be returned: ... (16 Replies)
Discussion started by: makodarear
16 Replies
Login or Register to Ask a Question