Delete files except the file names available in the Except File


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Delete files except the file names available in the Except File
# 1  
Old 03-11-2016
Delete files except the file names available in the Except File

Hi,

I need some help in the below scenario.

I need to delete all the files from the directory except the file name available in the Except file.

Like the folder ABC have files like A1.txt,A2.txt......A10.txt
and also have a file named Except.txt with the content A3.txt,A4.txt

Need a unix command to delete all the files from the folder ABC except the files A3.txt,A4.txt looking up on the Except.txt file.

Thanks for the response.
# 2  
Old 03-11-2016
How about
Code:
ls -1 | grep -vf except - | xargs echo rm

xargs is not necessarily the tool of choice for more complicated situations. Should files exist e.g. with non-alpha chars in their name, additional measures need to be taken.
# 3  
Old 03-11-2016
Code:
while read f
do
rm $f
done <Except.txt

will delete all the files listed in except.txt

Don,
You should have deleted the post. I was using my phone and could not see all of the question at once, cause I'm old and need big print, and got the question backwards.

Last edited by jgt; 03-12-2016 at 10:53 AM.. Reason: Fix CODE tags.
# 4  
Old 03-11-2016
Below Sample command to exclude file in the code itself but i need to get the file names looked up from another file.

f
Code:
ind *.* '!' -name 'test1.txt' '!' -name 'text2.txt' -type f -mtime +20

I need something like below to look up the file name from lookup file

Code:
find *.* '!' -name "Except lookup file" -type f -mtime +20

Thanks for the response.

Last edited by Don Cragun; 03-12-2016 at 06:20 AM.. Reason: Add CODE tags.
# 5  
Old 03-11-2016
In post#2, replace the ls -1 with your find command.
# 6  
Old 03-12-2016
You should use caution with the grep command. You may not get exactly the results you expect.
Code:
jack@veritron ~ $ cat t3
abc.txt
1abc.txt
abc.txt1
jack@veritron ~ $ grep abc.txt t3
abc.txt
1abc.txt
abc.txt1
jack@veritron ~ $ grep ^abc.txt$ t3
abc.txt
jack@veritron ~ $

# 7  
Old 03-12-2016
Yes, true! But false positives, in this case, would not remove too many but too few files, and you might want to add the -w or -x options to match entire words or lines only.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Compare Only "File Names" in 2 Files with file lists having different directory structure

I have a tar arcive arch_all.tar.gz and 4 batched tar archive . These batches are supposed to have all the files form arch1.all.tar.gz arch1_batch1.tar.gz arch1_batch2.tar.gz arch1_batch3.tar.gz arch1_batch4.tar.gz my issue is that the directory structure in "arch_all.tar.gz" is... (6 Replies)
Discussion started by: sumang24
6 Replies

2. Shell Programming and Scripting

While loop a file containing list of file names until the files are found?

Hi, I have a control file which will contain all filenames(300) files. Loop through all the file names in the control files and check the existence of this file in another directory(same server). I need to infinitely(2 hrs) run this while loop until all the files are found. Once a file is found,... (5 Replies)
Discussion started by: laknar
5 Replies

3. Shell Programming and Scripting

Exclude certain file names while selectingData files coming in different names in a file name called

Data files coming in different names in a file name called process.txt. 1. shipments_yyyymmdd.gz 2 Order_yyyymmdd.gz 3. Invoice_yyyymmdd.gz 4. globalorder_yyyymmdd.gz The process needs to discard all the below files and only process two of the 4 file names available ... (1 Reply)
Discussion started by: dsravanam
1 Replies

4. UNIX for Dummies Questions & Answers

Delete files whose file names are listed in a .txt file

hi, I need a help. I used this command to list all the log files which are for more than 10 days to a text file. find /usr/script_test -type f -mtime +10>>/usr/ftprm.txt I want all these files listed in the ftprm.txt to be ftp in another machine and then rm the files. Anyone can help me... (8 Replies)
Discussion started by: kamaldev
8 Replies

5. UNIX for Dummies Questions & Answers

To delete the oldest files in a file when file count in the folder exceeds 7

Hi All, I need to delete the oldest file in folder when the file count in the folder exceed 6 ( i have a process that puts the source files into this folder ) E.x : Folder : /data/opt/backup 01/01/2012 a.txt 01/02/2012 b.txt ... (1 Reply)
Discussion started by: akshay01987
1 Replies

6. Shell Programming and Scripting

How to split a data file into separate files with the file names depending upon a column's value?

Hi, I have a data file xyz.dat similar to the one given below, 2345|98|809||x|969|0 2345|98|809||y|0|537 2345|97|809||x|544|0 2345|97|809||y|0|651 9685|98|809||x|321|0 9685|98|809||y|0|357 9685|98|709||x|687|0 9685|98|709||y|0|234 2315|98|809||x|564|0 2315|98|809||y|0|537... (2 Replies)
Discussion started by: nithins007
2 Replies

7. Shell Programming and Scripting

Searching for file names in a directory while ignoring certain file names

Sun Solaris Unix Question Haven't been able to find any solution for this situation. Let's just say the file names listed below exist in a directory. I want the find command to find all files in this directory but at the same time I want to eliminate certain file names or files with certain... (2 Replies)
Discussion started by: 2reperry
2 Replies

8. Shell Programming and Scripting

Insert file names when concatenate files into a file

Hi I found the following line would concatenate all test_01 test_02 test_03 files into "bigfile". cat test_* >> bigfile But, what I'm looking for a way to insert each file names in order when concatenated in "bigfile". Thank you samky2005 (2 Replies)
Discussion started by: samky2005
2 Replies

9. UNIX for Dummies Questions & Answers

how to delete file names with $ in them

I'm reading the file name from a spreadsheet then creating a data file with several remove statements. i.e cd /sun/5.0/AWBE/v1.0/svr/VaultLocs/CPVaultLoc/ rm "ZXCV KTest Stat host $$ cont.xls" cd /sun/5.0/AQE/v1.0/svr/VaultLocs/CPVaultLoc/ rm "ABC PMT OzLtr.pdf" cd... (2 Replies)
Discussion started by: orahi001
2 Replies

10. UNIX for Dummies Questions & Answers

How can I delete files using a file that containt path and names?

Recentily i receive virus ninda and my network was files *.eml. I find all *.eml with: find / -name *.eml -print > virus Virus has the path and name of the file,so, How can i delete all *.eml? Thanks (2 Replies)
Discussion started by: AlvaroD
2 Replies
Login or Register to Ask a Question