pratik
pratik

Reputation: 57

how to merge two files in unix

I want to merge two files in Unix. How can I do this?

eg file1 contains:

host1:90:/users:user1 
host2:90:/users:user1 
host3:90:/users:user1 
host4:90:/users:user1
host5:90:/users:user1 
host6:90:/users:user1 
host7:90:/users:user1

file2 contains:

host1:owner_name
host2:owner_name
host3:owner_name
host4:owner_name
host5:owner_name
host6:owner_name
host7:owner_name

output result:

host1:90:/users:user1:owner_name
host2:90:/users:user1:owner_name
host3:90:/users:user1:owner_name
host4:90:/users:user1:owner_name
host5:90:/users:user1:owner_name
host6:90:/users:user1:owner_name
host7:90:/users:user1:owner_name

I have used this command paste -d ':' file1 file2 >merged_file, but this is what I am getting:

host1:90:/users:user1:host1:owner_name
host2:90:/users:user1:host2:owner_name
host3:90:/users:user1:host3:owner_name
host4:90:/users:user1:host4:owner_name
host5:90:/users:user1:host5:owner_name
host6:90:/users:user1:host6:owner_name
host7:90:/users:user1:host7:owner_name

Upvotes: 1

Views: 1064

Answers (1)

cnicutar
cnicutar

Reputation: 182639

Use join instead:

% join -t':' file1 file2
host1:90:/users:user1:owner_name
host2:90:/users:user1:owner_name
host3:90:/users:user1:owner_name
host4:90:/users:user1:owner_name
host5:90:/users:user1:owner_name
host6:90:/users:user1:owner_name
host7:90:/users:user1:owner_name

Upvotes: 2

Related Questions