Find common files between two directories


Login or Register for Dates, Times and to Reply

 
Thread Tools Search this Thread
# 1  
Find common files between two directories

I have two directories
Dir 1
HTML Code:
/home/sid/release1
Dir 2
HTML Code:
/home/sid/release2
I want to find the common files between the two directories

Dir 1 files
HTML Code:
/home/sid/release1>ls -lrt
total 16
-rw-r--r--   1 sid cool          0 Jun 19 12:53 File123
-rw-r--r--   1 sid cool          0 Jun 19 12:53 File456
-rw-r--r--   1 sid cool          0 Jun 19 12:53 FileDEF
-rw-r--r--   1 sid cool         17 Jun 19 13:11 Fileabc
Dir 2 files
HTML Code:
/home/sid/release2>ls -lrt
total 16
-rw-r--r--   1 sid hot          0 Jun 19 13:02 File456
-rw-r--r--   1 sid  hot          0 Jun 19 13:02 FileDEF
-rw-r--r--   1 sid  hot         17 Jun 19 13:10 Fileabc

I want the output to show the common files between these directories
Code:
File456
FileDEF
Fileabc


Last edited by jim mcnamara; 06-19-2015 at 06:13 PM..
# 2  
Example: you have to directories a and b

Use the comm command on the output of ls:

Code:
comm -12 <(ls a) <(ls b)

This works in modern shells, the <(ls a) thing is called process substitution. comm -12 means show only entries that are the same. Play with changing the options for comm: -1 -2 -3 and see. The example is bash syntax.

Last edited by jim mcnamara; 06-19-2015 at 06:12 PM..
This User Gave Thanks to jim mcnamara For This Post:
# 3  
Code:
>ls /tmp/a
1  2  3  4  456  5  File  File123  File456  Filebc  FileDEF
>ls /tmp/v
1  4  File123  File456  FileDEF
>cd /tmp/a
>ls `ls /tmp/v` 2>&1 | grep -iv 'cannot'
1
4
File123
File456
FileDEF
>cd /tmp/v
>ls `ls /tmp/a` 2>&1 | grep -iv 'cannot'
1
4
File123
File456
FileDEF
>

# 4  
If your shell does not have <( .. ) (process substitution), you could try using temporary files ( or named pipes)

--
Or try something like:
Code:
ls Dir1 Dir2 | awk 'A[$0]++'

# 5  
Quote:
Originally Posted by Scrutinizer
If your shell does not have <( .. ) (process substitution), you could try using temporary files ( or named pipes)

--
Or try something like:
Code:
ls Dir1 Dir2 | awk 'A[$0]++'

Nice idea, but for the paranoid (e.g. me) it should be
Code:
(ls Dir1; ls Dir2) | awk 'A[$0]++'

in case Dir1 contains a file Dir2: or vice versa.
# 6  
Thanks, and well, if you want to avoid that corner case, yes that would avoid that.
Using command grouping instead, will save an extra subshell.
Code:
{ ls Dir 1; ls Dir 2;} | awk 'A[$0]++'


Last edited by Scrutinizer; 06-20-2015 at 01:56 AM..
Login or Register for Dates, Times and to Reply

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

Test Your Knowledge in Computers #537
Difficulty: Medium
An enumerated data type allows a user to define a list of keywords associated with integers.
True or False?

9 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Find common lines between all of the files in one folder

Could it be possible to find common lines between all of the files in one folder? Just like comm -12 . So all of the files two at a time. I would like all of the outcomes to be written to a different files, and the file names could be simply numbers - 1 , 2 , 3 etc. All of the file names contain... (19 Replies)
Discussion started by: Eve
19 Replies

2. Shell Programming and Scripting

Find Common Values Across Two Files

Hi All, I have two files like below: File1 MYFILE_28012012_1112.txt|4 MYFILE_28012012_1113.txt|51 MYFILE_28012012_1114.txt|57 MYFILE_28012012_1115.txt|57 MYFILE_28012012_1116.txt|57 MYFILE_28012012_1117.txt|57 File2 MYFILE_28012012_1110.txt|57 MYFILE_28012012_1111.txt|57... (2 Replies)
Discussion started by: angshuman
2 Replies

3. Shell Programming and Scripting

Compare two sample files and find common

Hi I have two sample files attached here one file contain entries in one column and second file contains entries in many columns I have to match entries of first file with entries in secon d file form secon column onwards and if matches write "match" in front of it. I tried several... (11 Replies)
Discussion started by: manigrover
11 Replies

4. Shell Programming and Scripting

Script to find NOT common strings in two files

Hi all, I'd like you to help or give any advise about the following: I have two (2) files, file1 and file2, both files have information common to each other. The contents of file1 is a subset of the contents of file2: file1: errormsgadmin esdp esgservices esignipa iprice ipvpn irm... (18 Replies)
Discussion started by: hnux
18 Replies

5. Shell Programming and Scripting

Script to find NOT common strings in two files

Hi all, I'd like you to help or give any advise about the following: I have two (2) files, file1 and file2, both files have information common to each other. The contents of file1 is a subset of the contents of file2: file1: errormsgadmin esdp esgservices esignipa iprice ipvpn irm... (0 Replies)
Discussion started by: hnux
0 Replies

6. UNIX for Dummies Questions & Answers

how to find common words and take them out from two files

Hi, everyone, Let's say, we have xxx.txt A 1 2 3 4 5 C 1 2 3 4 5 E 1 2 3 4 5 yyy.txt A 1 2 3 4 5 B 1 2 3 4 5 C 1 2 3 4 5 D 1 2 3 4 5 E 1 2 3 4 5 First I match the first column I find intersection (A,C, E), then I want to take those lines with ACE out from yyy.txt, like A 1... (11 Replies)
Discussion started by: kaixinsjtu
11 Replies

7. Shell Programming and Scripting

Files common in two sets ??? How to find ??

Suppose we have 2 set of files set 1 set 2 ------ ------ abc hgb def ppp mgh vvv nmk sdf hgb ... (1 Reply)
Discussion started by: skyineyes
1 Replies

8. Shell Programming and Scripting

To find all common lines from 'n' no. of files

Hi, I have one situation. I have some 6-7 no. of files in one directory & I have to extract all the lines which exist in all these files. means I need to extract all common lines from all these files & put them in a separate file. Please help. I know it could be done with the help of... (11 Replies)
Discussion started by: The Observer
11 Replies

9. Shell Programming and Scripting

find common elements in 2 files (for loop)

Hi, i'm new here (and to scripting too). I was hoping for some help in comparing two files. i have a file called 'file1' with a list of names in the following format: adam jones paul higgins kelly lowe i also have another file which may contain some of the names but with a lot of... (4 Replies)
Discussion started by: ibking
4 Replies

Featured Tech Videos