Merging two files with same name


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Merging two files with same name
# 1  
Old 06-17-2010
Question Merging two files with same name

Hello all,

I have limited experience in shell scripting. Here goes my question:

I have two directories that have same number of files with same file names i.e. consider 2 directories A and B. Both directories have files 1.txt, 2.txt......

I need to merge the file 1.txt of A with file 1.txt of B, file 2.txt of A with file 2.txt of B, .....and so on.

Please suggest a UNIX script to do this.

Thanks.
# 2  
Old 06-17-2010
One way, assuming A and B directories are in the current directory, and that A and B contain only files:

Code:
ls A | sed "s|.*|cat A/& >> B/&|" | sh

Code:
$ ls A
1.txt	2.txt	3.txt

$ cat A/1.txt
1

$ ls B
1.txt	2.txt	3.txt

$ cat B/1.txt
a

#... etc...

$ ls A | xargs -I{} cat A/{}
1
2
3

$ ls B | xargs -I{} cat B/{}
a
b
c

$ ls A | sed "s|.*|cat A/& >> B/&|" | sh

$ ls B | xargs -I{} cat B/{}            
a
1
b
2
c
3

Or probably simpler with a loop:
Code:
ls A | while read FILE; do
  cat A/"$FILE" >> B/"$FILE"
done


Last edited by Scott; 06-17-2010 at 04:09 PM..
This User Gave Thanks to Scott For This Post:
# 3  
Old 06-17-2010
Thanks scottn for the prompt reply.
The loop approach looks more elegant to me.
Just a small issue, what if I want the merging not to append to the directory B files, but rather put the results of merging in a separate file with the same file name?
# 4  
Old 06-17-2010
As an example:

Code:
ls A | while read FILE; do
  cat A/"$FILE" B/"$FILE" >> C/"$FILE"
done

to append the A and B files to new files (with the same names) somewhere else.
This User Gave Thanks to Scott For This Post:
# 5  
Old 06-18-2010
Quote:
Originally Posted by scottn
As an example:

Code:
ls A | while read FILE; do
  cat A/"$FILE" B/"$FILE" >> C/"$FILE"
done

to append the A and B files to new files (with the same names) somewhere else.
It will be better to add one judgment before attach file A to B. But this depends on the request

Code:
if [ -f "B/$FILE" ] ; then
  cat A/"$FILE" B/"$FILE" >> C/"$FILE"
fi

# 6  
Old 06-18-2010
Thanks to both of you.

However, there's one thing to note here, unless the files end in a newline character the append will be at the end of the last line of the file and thus 2 lines will be in the same line
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Merging two files

Hi All , I have a scenario where we need to combine two files . Below are the sample files and expected output , File 1: 1|ab 1|ac 1|ae 2|ad 2|ac File 2: 1|xy 1|fc 2|gh 2|ku Output file : 1|ab|xy (3 Replies)
Discussion started by: saj
3 Replies

2. Shell Programming and Scripting

Merging two files

Guys, I am having little problem with getting a daily report! The daily process that I do is as follows 1. Unload Header for the report from the systables to one unl file, say Header.unl 2. Unload the data from the required table/tables to another unl file, say Data.unl 3. Send a... (2 Replies)
Discussion started by: PikK45
2 Replies

3. Shell Programming and Scripting

Help with merging 2 files into 1

::::::::: ::FileA:: ::::::::: A1-------A2--------A3---A4---A5-- ================================= AC5VXVLT-XX---------------------- B57E434--XXXX1-----MMMM-ZZZ--111- C325G20--XXXXX3----CCCC------3332 DC35S51--XXXXY1----DDDD------44X- DC35S52--XXXXY2----DDDD------44Y-... (5 Replies)
Discussion started by: lordsmiter
5 Replies

4. Shell Programming and Scripting

Merging files

I have two files file 1 containing x rows and 1 column file 2 containing x rows and 1 column I want to merge both the files and add a comma between the two eg plz guide (1 Reply)
Discussion started by: test_user
1 Replies

5. UNIX for Dummies Questions & Answers

Merging two files

Hi, I have two files a.txt and b.txt. a.txt 1 2 3 4 b.txt a b c d e I want to generate a file c.txt by merging these two file and the resultant file would contain c.txt 1 (4 Replies)
Discussion started by: siba.s.nayak
4 Replies

6. Shell Programming and Scripting

merging of files.

Hi, I want to merge the two files on the basis of columns like... file 1 Data Key A 12 B 13 file2 Data Value A A1 A A2 B B1 B B2 (5 Replies)
Discussion started by: clx
5 Replies

7. Shell Programming and Scripting

merging two files

Hi everyone, I have two files which will be exactly same at first. After sometime there will be inserts in one file. My problem is how to reflect these changes in second file also. I found out that any compare and merge utility would do the job like, GNU " sdiff " command. But the... (14 Replies)
Discussion started by: rameshonline
14 Replies

8. Shell Programming and Scripting

Help with merging files

i would like to merge two files that have the same format but have different data. i would like to create one output file that contains information from both the original files.:rolleyes: (2 Replies)
Discussion started by: joe black
2 Replies

9. Shell Programming and Scripting

Merging 2 files

Hi, I have got two files 1.txt 1111|apple| 2222|orange| 2.txt 1111|1234|000000000004356| 1111|1234|000000001111| 1111|1234|002000011112| 2222|5678|000000002222| 2222|9102|000000002222| I need to merge these two so that my out put looks like below: Search code being used should be... (4 Replies)
Discussion started by: jisha
4 Replies

10. Shell Programming and Scripting

merging files

Thanks in advance I have 2 files having key field in each.I would like to join both on common key.I have used join but not sucessful. The files are attached here . what i Want in the output is on the key field SLS OFFR . I have used join commd but not successful. File one ======= SNO ... (6 Replies)
Discussion started by: vakharia Mahesh
6 Replies
Login or Register to Ask a Question