Help With Find Command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Help With Find Command
# 1  
Old 01-22-2011
Help With Find Command

Hello All,

I am new to this shell scripting , I wanted to modify the output of my find command such that it does not display the path but only file names , for example I am searching for the files which are modified in the last 24 hours which is

find /usr/monitor/text/ -type f -mtime -1 -print , this is returning me the output as

/usr/monitor/text/abc.txt
/usr/monitor/text/def.txt
/usr/monitor/text/ijk.txt

but i want to modify the output such that it gives only the file names and remove the path

please advice me on this
# 2  
Old 01-22-2011
You can pipe it to awk

awk '{ print $NF }' FS=/

---------- Post updated at 04:38 PM ---------- Previous update was at 04:34 PM ----------

You can pipe it to awk

find /usr/monitor/text/ -type f -mtime -1 -print | awk '{ print $NF }' FS=/
This User Gave Thanks to codecaine For This Post:
# 3  
Old 01-22-2011
you can cd to the directory you like and do something like this:

find . -type -print

The problem is that find walks down the directories, therefore if you have
a directory in your path you will get output like this

dir/file1
dir/file2
.....

You may want to consider outputing your results to a file, than reading
the conetents of the file line by line and calling 'basename' on each line. That will give you your desired results.

Keep in mind, you can have the same file name in different directories and
they can be differnt files.

Good luck
This User Gave Thanks to BeefStu For This Post:
# 4  
Old 01-22-2011
Quote:
Originally Posted by codecaine
You can pipe it to awk

awk '{ print $NF }' FS=/

---------- Post updated at 04:38 PM ---------- Previous update was at 04:34 PM ----------

You can pipe it to awk

find /usr/monitor/text/ -type f -mtime -1 -print | awk '{ print $NF }' FS=/
Thanks a lot the command works but I am getting an other error the basic idea of me using this script is to copy and back up the files , below is my entire code

#!/bin/ksh
#####################################################################################

##### This script is used to copy the dat files from the and copy the latest files from the shared location
#============================================================================
find /home/wasadmin/DatFiles/ -type f -mtime -1 -print | awk '{ print $NF }' FS=/ | while read filename
do
echo $filename
# Remove the Existing back-up DAT files
rm /usr/IBM/WebSphere/AV/backup_"${filename}"
mv /usr/IBM/WebSphere/AV/"${filename}" /usr/IBM/WebSphere/AV/backup_"${filename}"
# Copy files preserving permissions and create any directory needed
echo "${filename}"|cpio -pdumv /usr/IBM/WebSphere/AV; ERROR=$?
done
if [ $ERROR = 0 ]
then
mail -s "Copy of the latest Dat files Successful on $date" -c raokl@yahoo.com
else
mail -s "Copy of the latest Dat failed for:${filename}on $date" -c raokl@yahoo.com
fi

When i run this it is giving me the output as

cpio: 0511-025 Cannot get information about avvclean.dat.
0 blocks
avvnames.dat


I have checked out for the owner and other permissions they are correct , can you please let me know if i missing some where

---------- Post updated at 03:55 PM ---------- Previous update was at 03:54 PM ----------

Quote:
Originally Posted by BeefStu
you can cd to the directory you like and do something like this:

find . -type -print

The problem is that find walks down the directories, therefore if you have
a directory in your path you will get output like this

dir/file1
dir/file2
.....

You may want to consider outputing your results to a file, than reading
the conetents of the file line by line and calling 'basename' on each line. That will give you your desired results.

Keep in mind, you can have the same file name in different directories and
they can be differnt files.

Good luck

Thank you very much
# 5  
Old 01-22-2011
I did not read and try to understand in depth what your script does but maybe this helps--it's in response to your original request to just print the file name from find output:

Quote:
find . -type f | xargs basename
This strips the path info off the output and just shows the file name.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Is it possible to find the seek rate of the find command in Solaris?

Hello, I am running some performance based tests on Solaris, and I was wondering how fast the "seeking" rate of Solaris is, or how fast Solaris can get information about files with the "find" command. Does anyone know what 'find' command I could run to traverse through my system to see the rate... (1 Reply)
Discussion started by: bstring
1 Replies

2. Shell Programming and Scripting

Find multiple string in one file using find command

Hi, I want find multiple string in one file using find coomand. And keeping it in one variable.grep is not working. (5 Replies)
Discussion started by: vivek1489
5 Replies

3. Shell Programming and Scripting

How to use grep & find command to find references to a particular file

Hi all , I'm new to unix I have a checked project , there exists a file called xxx.config . now my task is to find all the files in the checked out project which references to this xxx.config file. how do i use grep or find command . (2 Replies)
Discussion started by: Gangam
2 Replies

4. Shell Programming and Scripting

Find, regular expression, anyway to simplify this find command?

Hello everyone, first post here, trying to learn scripting on my own and this forum as been really helpful so far. I made few little scripts working great but I m facing some problems with RE. I have a bunch of files in many subdirectories called *001.ext *002.ext OR simple *.ext or *01.ext... (7 Replies)
Discussion started by: Sekullos
7 Replies

5. Shell Programming and Scripting

what is the find command to find exact dir from the root

I want to find a dir called STOP from the root.so what is the find command. Thanks & Regards Rajkumar (1 Reply)
Discussion started by: rajkumar_g
1 Replies

6. Linux

Simplified find command to find multiple file types

Hi, I'm using the following command to find the multiple requierd file types and its working fine find . -name "*.pl" -o -name "*.pm" -o -name "*.sql" -o -name "*.so" -o -name "*.sh" -o -name "*.java" -o -name "*.class" -o -name "*.jar" -o -name "*.gz" -o -name "*.Z" -type f Though... (2 Replies)
Discussion started by: vickramshetty
2 Replies

7. Shell Programming and Scripting

find: No match due to find command being argument

I am using csh and getting the error "find: No match." but I cannot figure out why. What I am trying to do is set the find command to a variable and then execute the variable as a command. I ran it through a debugger and it looks like $FIND is getting set but the find command can not actually be... (2 Replies)
Discussion started by: mst3k4l
2 Replies

8. UNIX for Dummies Questions & Answers

how to find a file named vijay in a directory using find command

I need to find whether there is a file named vijay is there or not in folder named "opt" .I tried "ls *|grep vijay" but it showed permission problem. so i need to use find command (6 Replies)
Discussion started by: amirthraj_12
6 Replies

9. Shell Programming and Scripting

Little bit weired : Find files in UNIX w/o using find or where command

Yes , I have to find a file in unix without using any find or where commands.Any pointers for the same would be very helpful as i am beginner in shell scritping and need a solution for the same. Thanks in advance. Regards Jatin Jain (10 Replies)
Discussion started by: jatin.jain
10 Replies

10. Shell Programming and Scripting

command find returned bash: /usr/bin/find: Argument list too long

Hello, I create a file touch 1201093003 fichcomp and inside a repertory (which hava a lot of files) I want to list all files created before this file : find *.* \! -maxdepth 1 - newer fichcomp but this command returned bash: /usr/bin/find: Argument list too long but i make a filter all... (1 Reply)
Discussion started by: yacsil
1 Replies
Login or Register to Ask a Question