Remove files by name


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers Remove files by name
# 1  
Old 03-26-2012
Remove files by name

Hi,
I have multiple xml files and named
Code:
1233__AAA__12.xml
1234__AAA__12.xml
2125__AAA__13.xml
2127__AAA__13.xml

and I want to delete or to remove only these with the hightest ID e.g. files 1234__AAA__12.xml and 2127__AAA__13.xml.

Could you tell me how can i do that? Is there any script?

Thank you for your help!
Moderator's Comments:
Mod Comment please use code tags
# 2  
Old 03-27-2012
Here is one way of doing it:
Code:
#!/bin/ksh
sed 's/.*\(__.*__.*\).xml/\1/' Inp_File | uniq | while read mStr; do
  grep "${mStr}" Inp_File | sort -t_ -k3 -kn1 | tail -1
done

# 3  
Old 03-27-2012
You can perform a sort on the first number. Check for a cutoff number and remove all the files from then onwards.
# 4  
Old 03-28-2012
We all know what must be done.

The issue is how to do it.

Please, provide your solution using actual unix commands.
# 5  
Old 03-28-2012
The following will give the files whose first numbers exceed 1250.

Code:
echo "1233__AAA__12.xml 1234__AAA__12.xml 2125__AAA__13.xml" | tr ' ' '\n' | awk 'BEGIN{FS="_"}{if ($1 > 1250) {print}}'

---------- Post updated at 11:03 AM ---------- Previous update was at 10:59 AM ----------

This will give you the command to run in a file which I call
Quote:
commands.run
.

Code:
ls -lrt *.xml | awk '{print $NF}' | awk 'BEGIN{FS="_"}{if ($1 > 1250) {print "rm "$0}}' > commands.run


Last edited by kristinu; 03-28-2012 at 01:15 PM..
# 6  
Old 03-29-2012
given the short sample list of files and desired selection, I guess your definition of "highest ID" is the leftmost portion of the filename preceding the fourth underscore? You'll have to hack on this code to adjust if I am misunderstand your filename pattern.

Code:
for i in $(ls -1 *.xml | cut -d\. -f1 | cut -d_ -f5 | sort -u); do ls -1 *${i}.xml | tail -1; done

if that code snippet produces the correct list of files, then just tack on a 'xargs rm' to do the dirty work. e.g.

Code:
... tail -1; done | xargs rm -f

 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Solaris

Command to remove existing files in the tar files in Solaris 10

Hi, I am using solaris 10 OS.Please help me out with the commands needed in below two scenarios. 1)How to delete the existing files in the tar file. suppose i have a main tarfile named application.tar and it contains a file called ingres.tar. what is the command to remove ingres.tar... (2 Replies)
Discussion started by: muraliinfy04
2 Replies

2. Shell Programming and Scripting

Remove old files

In my redhat 5 sysem , there are many files are generated to a directory, I would like to do the housekeeping as following , move the files elder than 90 days to a specific directory , then remove the the files elder than 180 days from this specific directory , I have a script to do it . ... (2 Replies)
Discussion started by: ust3
2 Replies

3. Shell Programming and Scripting

Remove files

I know that rm -i, asks a user before removing a file. What I need to accomplish is removing files from a different directory without switching to that directory. Example: I'm currently in directory dog and I want to remove all the files of a certain name in directory cat, but from within the dog... (5 Replies)
Discussion started by: smiley76112
5 Replies

4. UNIX for Advanced & Expert Users

how to remove the files along with its link files

How to remove the files along with its link files either hardlink or softlink? (1 Reply)
Discussion started by: Ramesh_srk
1 Replies

5. Shell Programming and Scripting

compare two files and to remove the matching lines on both the files

I have two files and need to compare the two files and to remove the matching lines from both the files (4 Replies)
Discussion started by: shellscripter
4 Replies

6. Shell Programming and Scripting

need to remove a range of files

How come I remove the range of file from update.0001* to update.0002* and not other files. (11 Replies)
Discussion started by: gsiva
11 Replies

7. Shell Programming and Scripting

remove files other than selected

I wanna remove a set files other than some selected files. Eg. :rolleyes::rolleyes::rolleyes: a directory contains n files like test1.dat test2.dat test3.dat test4.dat out5.dat out1.dat i wanna remove all files which doesnot name like *test* I want to use this in shell... (22 Replies)
Discussion started by: freakygs
22 Replies

8. Shell Programming and Scripting

how to remove files with a date

I have files with a date name ( 20060506 20060507 etc..) that i want to remove because it keeps filling up the directory. Can someone please help me with a script to remove those date files. i would like to keep atleast 14 days worth from the current date. I hope i have explained it clearly and... (5 Replies)
Discussion started by: justintime
5 Replies

9. UNIX for Advanced & Expert Users

How To Remove files starting with -

In Unix/Linux when u create a file starting with a - e.g.-file then when u try to remove or rename it, it is not possible. e.g. rm -file . when we give this command rm assumes to be its option rather than its argument. Same is the case when this filename is given as an argument to mv or cat and... (2 Replies)
Discussion started by: rahulrathod
2 Replies

10. Shell Programming and Scripting

remove files

Hi, How do i remove all the files that are present in the directory.. I know a way of doing this..that is by using *.* .. But my directory has executables or some files without extensions... So they are not getting deleted. What do i do to remove all of them? Thanks, Nisha (7 Replies)
Discussion started by: Nisha
7 Replies
Login or Register to Ask a Question