Compare two directory and find differents


 
Thread Tools Search this Thread
Top Forums UNIX for Beginners Questions & Answers Compare two directory and find differents
# 1  
Old 04-13-2020
Compare two directory and find differents

Hi have two directory with below name in /opt

1-Source
2-Destination

In Source directory there is a lot's of files, with extensions (doc, docx , ppt, xls,...).
In Destination directory only pdf version of (doc, docx) files that exist in source stored.

Now I want to create script that use diff command check source and get list of only (doc, docx) files after that look for related pdf file in Destination if pdf version of (doc, docx) not exist in destination store list of them on a file.

E.g.

1-Source
Code:
File1.doc
File2.docx
File3.doc
File4.ppt
File5.xls
File6.doc

2-Destination
Code:
File1.pdf
File3.pdf

Expected result after run script is:
Code:
File2.docx
File6.doc

Here is my script
Code:
diff -r /opt/source /opt/destination


Any recommendation?
Thanks



UPDATE
Follow below post and work like charm:

Code:
comm -23 <(find dir1 -type f -exec bash -c 'basename "${0%.*}"' {} \; | sort) <(find dir2 -type f -exec bash -c 'basename "${0%.*}"' {} \; | sort)
test1

filenames - diff two directories, but ignore the extensions - Unix & Linux Stack Exchange

Last edited by indeed_1; 04-14-2020 at 08:04 AM..
# 2  
Old 04-13-2020
Any attempts / ideas / thoughts form your side?
# 3  
Old 04-13-2020
Code:
diff -r /opt/source /opt/destination

# 4  
Old 04-13-2020
Did you ever try to run that line?


Try instead

Code:
cd SRC; for FN in *.doc*; do [ ! -f ../DST/${FN%.*}.pdf ] && echo $FN; done; cd ..
File2.docx
File6.doc

# 5  
Old 04-13-2020
How does it work recursive? -r ? There are some different directions into the source and destination that need to check.
# 6  
Old 04-14-2020
That was not mentioned in your OP. Try
Code:
find SRC -iname "*.doc*" | while read FP; do FB="${FP%.*}"; [ ! -f "${FB/SRC/DST}.pdf" ] && echo "$FP"; done
SRC/D2/File6.doc
SRC/D2/File2.docx
SRC/D1/File6.doc
SRC/D1/File2.docx
SRC/File6.doc
SRC/File2.docx

# 7  
Old 04-14-2020
Code:
comm -23 <(find dir1 -type f -exec bash -c 'basename "${0%.*}"' {} \; | sort) <(find dir2 -type f -exec bash -c 'basename "${0%.*}"' {} \; | sort)
test1

Follow below post and work like charm:
filenames - diff two directories, but ignore the extensions - Unix & Linux Stack Exchange
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

How to find and get a file in an entire directory with an excluded directory specified?

How to get a file 'zlib.h' in an entire directory with an excluded directory specified lives under that starting directory by using find command, as it failed on: $ find . -name 'zlib.h' -a -ipath 'CHROME.TMP' -prune -o -print it'll just list entirely up (2 Replies)
Discussion started by: abdulbadii
2 Replies

2. Shell Programming and Scripting

Compare directory dates

hi, I need to know if a specific directory exists in a folder named after the date of yesterday (02/06/2015) The problem is simple but not how to do it. :confused:i= date -d "yesterday" '%Y-%m-%d' <- the format of directory is 2015-06-02 if in /var/logroot/index exist directory whit... (4 Replies)
Discussion started by: tmeto
4 Replies

3. Shell Programming and Scripting

awk - matching on 2 columns for differents lines

Given this file (I separated them in block to make my explanation clearer): 92157768877;Sof_deme_Fort_Email_am_%yyyy%%mm%%dd%;EMAIL;20/02/2015;1;0;0 92157768877;Sof_trav_Fort_Email_am_%yyyy%%mm%%dd%;EMAIL;20/02/2015;1;0;0 91231838895;Sof_deme_faible_Email_am;EMAIL;26/01/2015;1 0;0... (1 Reply)
Discussion started by: Andy_K
1 Replies

4. Programming

Query SQL get two values differents from the same columns

Hi, I have 2 different values in the same column and two different values in other column Query 1 ins name value 1 Test 12345 1 TestV1 12/10/2014 8 Test 85435 8 TestV1 11/11/2005 9 Test 42232 9 TestV1 19/10/2000 6 Test 54321... (6 Replies)
Discussion started by: faka
6 Replies

5. Shell Programming and Scripting

Find every directory named XYZ under the DVLP directory

I only want to find files under each branch of the directory tree inside directories named XYZ and there are multiple XYZ directories? (7 Replies)
Discussion started by: emc^24sho
7 Replies

6. Shell Programming and Scripting

Extract sequences of bytes from binary for differents blocks

Hello to all, I would like to search sequences of bytes inside big binary file. The bin file contains blocks of information, each block begins is estructured as follow: 1- Each block begins with the hex 32 (1 byte) and ends with FF. After the FF of the last block, it follows 33. 2- Next... (59 Replies)
Discussion started by: Ophiuchus
59 Replies

7. Shell Programming and Scripting

Compare new version of two directory

How to compare new version exist of two path directory. for e.g., path1 - /user/path/test/ path2 - /user/path/score/ If its exist new version then copy that new version into the first path directroy. How will do this. (3 Replies)
Discussion started by: roy1912
3 Replies

8. Shell Programming and Scripting

How i can obtain differents data on a single pass?

#!/bin/bash for i in `ls -c1 /usr/share/applications` do #name=`cat /usr/share/applications/$i | grep ^Name= | cut -d = -f2` #categories=`cat /usr/share/applications/$i | grep ^Categories= | sed 's/;/=/g' | cut -d = -f2` name=$(grep ^Name= /usr/share/applications/$i | cut -d = -f2)... (12 Replies)
Discussion started by: alexscript
12 Replies

9. Shell Programming and Scripting

Script That Can navigate to 3 differents directory & remove files under them

Hi I am Trying to Write a script that can goto 4 different directorys on the server & remove the Files older then 30 days ?? /logs logs1 logs2 logs3 Now I need to remove files under logs1 logs2 logs3 which are older then 30 days whose name stat 'sit' , 'mig','bld' . in... (3 Replies)
Discussion started by: Beginner123
3 Replies

10. Shell Programming and Scripting

Directory compare script

Hello, I am looking for a script, or pointer to an approach to creating a script, that will compare two versions of a codebase and output a third directory structure containing only the files that differ between the two. I use diff quite often, but it will only create patch files (AFAIK). Does... (3 Replies)
Discussion started by: jwilliams108
3 Replies
Login or Register to Ask a Question