Using find command with variables


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Using find command with variables
# 1  
Using find command with variables

I have a number of files in the /tmp directory with PET-DOG in their name. I want to delete them, leaving only files with PET-CAT and PET-HORSE. I'd like to use the find command to locate those files (by using a variable) and then I'd like to delete them. However, I can't find a way to do this. I found that -iname with a variable might work, but it didn't.

Here is what I have:
Code:
find . -name \*${VARY}\* -print

Doesn't work. Tried

Code:
 find . -iname \*${VARX}\* -print

Where VARY= PET-DOG.
But I do not have -iname as an option.

I realize I could also search for the PET-DOG string, but I'd like to use find with the variable to do it. Does anyone know how? I assume that after you found the files, you could use xargs rm -f to delete them.
# 2  
What is the output of:
Code:
uname -a
echo $SHELL

# 3  
Hello newbie2010,

Following may help you in same, I tested in bash.
1st please check the file names which you want to delete, if satisfied with result use 2nd command.
Code:
VAR="PET-DOG"
find -type f -name "*$VAR*"
./TEST-PET-DOG-234
./TEST-PET-DOG-TEST

I got above results as I have created some test files to check it.

2nd command:
Code:
find -type f -name "*$VAR*" -exec rm -rf {} \;

Thanks,
R. Singh
This User Gave Thanks to RavinderSingh13 For This Post:
# 4  
Trying to infer your problem from post #1, I guess it's a case problem, as -iname is needed but does not work. Try assigning VARY with the upper case partial file name and then
Code:
find . | awk -vNM="$VARY" 'toupper($0) ~ NM {print "ls \""$0"\""}' | sh

and replace the ls with rm when happy.
This User Gave Thanks to RudiC For This Post:
 

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

Test Your Knowledge in Computers #722
Difficulty: Medium
Konrad Zuse built the first digital freely programmable computer, the Z1.
True or False?

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

AIX find with Variables

I am trying to do a find with a variable but no matter which way I try it does not work. This is aix. Can I get some ideas on what I am doing wrong? for i in `cat file`; do find / -type f -name "$i" -exec ls -l {} + ; done for i in `cat file`; do find / -type f -name "\$i" -exec ls -l... (6 Replies)
Discussion started by: cokedude
6 Replies

2. Shell Programming and Scripting

Find between lines start and end: awk with bash variables

I have a file as follows: 0 1056 85540 414329 774485 1208487 1657519 2102753 2561259 3037737 3458144 3993019 4417959 4809964 5261890 5798778 6254146 I want to find all lines between a specified start and end tag. (6 Replies)
Discussion started by: jamie_123
6 Replies

3. Shell Programming and Scripting

Using a find command in ssh but using local variables?

I have a script like this (Yes, I know the DAY6 number isn't right - I'm just testing at this point): DAY0=`date -I` DAY1=`date -I -d "1 day ago"` DAY6=`date -I -d "2 days ago"` if then ssh root@synology1 nohup rm -rf "/volume1/Fileserver/$DAY6" fi I've tested the line to remove the... (5 Replies)
Discussion started by: Orionizer
5 Replies

4. Shell Programming and Scripting

Find and replace variables using a csv table

I have a flat file (template) where I want to replace variables based upon a value in another file (csv). The variables in the template are named %VAR_X_z% The values are in the csv file and X is field 0 of each line and y field 1 and up. Example of the csv: Badidas, 13.00, 12.00, 11.00,... (8 Replies)
Discussion started by: biscayne
8 Replies

5. Shell Programming and Scripting

Find global variables, c source

Hello.I have been trying to solve the following problem, but to no avail. If anyone could please give me some indications, or anything, it would be amazing. A C source program and a type name are given. Determine from source, the list of the global variables having the given type. For each... (5 Replies)
Discussion started by: Susan78
5 Replies

6. UNIX for Dummies Questions & Answers

How do I find the correct environment variables for MPI?

Hello all. I've been trying to install NWCHEM in parallel on a new cluster, and have been able to get it to work on single processors by ignoring any MPI environment variables. This is, of course, pretty worthless. So I'm starting over and trying to get thing set up right for the MPI. The key... (6 Replies)
Discussion started by: EinsteinMcfly
6 Replies

7. 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

8. Shell Programming and Scripting

assign a command line argument and a unix command to awk variables

Hi , I have a piece of code ...wherein I need to assign the following ... 1) A command line argument to a variable e.g origCount=ARGV 2) A unix command to a variable e.g result=`wc -l testFile.txt` in my awk shell script When I do this : print "origCount" origCount --> I get the... (0 Replies)
Discussion started by: sweta_doshi
0 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

Featured Tech Videos