Merging of all files based on a condition


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Merging of all files based on a condition
# 1  
Old 02-10-2010
Merging of all files based on a condition

Hi Friends,

I am new to UNIX. I need to merge all the files(to FINAL.txt) in single directory based one condition. Out of all the files one of file will have specific value like :GF01: at any where in the file.

so the file which is having :GF01: should be appended at the last.
EX:
Code:
abx.txt
xyz.txt
pqr.txt
..
123.txt

If Pqr.txt file has the value :GF01: in it; then pqr.txt files data should be merged at the end of FINAL.txt.

appreciate your helpSmilie

Thanks
Arun

Last edited by Franklin52; 02-11-2010 at 11:29 AM.. Reason: Please use code tags!
# 2  
Old 02-10-2010
Hi ,
Try this.

./test.pl *.txt

Script
Code:
#!/usr/bin/perl

$numArgv = $#ARGV + 1;
foreach $argnum ( 1 ... $numArgv) {
        $filename=shift;
        open (FH,$filename);
        @array=<FH>;
        @found = grep (/:GF01:/,@array);
        $arraysize=@found;
        if ($arraysize == 0 ) {
        `cat $filename >> final.txt`;
        }
        else
        {
        $filepattnotfound=$filename;
        }
        close(FH);
}
`cat $filepattnotfound >> final.txt`

# 3  
Old 02-10-2010
Try this:
Code:
ls *.txt |
{ while read file
  do
    if grep :GF01: "$file" > /dev/null 2>&1; then
       gffile="$file"
    else
       cat "$file"
    fi
  done
  cat "$gffile"
} > FINAL.txt

# 4  
Old 02-11-2010
Marging of new file happening from new line

Hi Thanks for the help.But Small problem here. Merging of the second file is not appending from new line.
EX: content of one file :A1.txt
Code:
{1:F01DELPUS33AXXX0297067264}{2:O9402307100209SOGEFRPPFXXX26050884481002091708N}{3:{108:EEX}}{4:{CHK:489B}}

Content of second file: A2.txt
Code:
{1:F01DELPUS33AXXX0297067258}
:62F:C100209EUR2003573,27
:64:C100209EUR2003573,27
-}{5:{CHK:AA67595BDF43}}

Final.txt output is coming like
Code:
{1:F01DELPUS33AXXX0297067264}{2:O9402307100209SOGEFRPPFXXX26050884481002091708N}{3:{108:EEX}}{4:{CHK:489B}}{1:F01DELPUS33AXXX0297067258}
:62F:C100209EUR2003573,27
:64:C100209EUR2003573,27
-}{5:{CHK:AA67595BDF43}}

A2.txt got merged from end of A1.txt(Not started from new line)

But i need the Output like:
Code:
{1:F01DELPUS33AXXX0297067264}{2:O9402307100209SOGEFRPPFXXX26050884481002091708N}{3:{108:EEX}}{4:{CHK:489B}}
{1:F01DELPUS33AXXX0297067258}
:62F:C100209EUR2003573,27
:64:C100209EUR2003573,27
-}{5:{CHK:AA67595BDF43}}

Merging of A2.txt should start from new line.

Appreciate your help.
Thanks
Arun

---------- Post updated at 10:36 AM ---------- Previous update was at 10:23 AM ----------

I have received the files in email and i have FTP'd them to UNIX. Does this has any difference.

i have created the same file through VI editor and try to merge the files and out put is working fine.

But when i transfer the same files from windows and try to merge is not working fine.

Appreciate your input.Smilie

Thanks
Arun

Last edited by Franklin52; 02-11-2010 at 11:31 AM.. Reason: Placing correct code tags
# 5  
Old 02-11-2010
You need to select ascii mode (not binary mode) for the ftp transfer otherwise your file does not get converted to a Unix file.
# 6  
Old 02-15-2010
Thanks a lot. It worked fine.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Merging two files based on matching columns

Hi, I am facing issues while accomplishing below task. We have two files Test1.txt and Test2.txt. We have to match 1st column of Test1.txt file with 2nd column of Test2.txt and then merge 2nd file with the 1st file. In the output we should select column 1 and 2 from the 1st file and column 1... (5 Replies)
Discussion started by: Prathmesh
5 Replies

2. UNIX for Dummies Questions & Answers

Merging two files baased on condition

Hi All, I have two below files(fileds separated by space). File1 001078401 A 5A1 001078401 B 085 001030035 A 5A1 001030035 B 085 File2 001078401 C 001 001078401 D 065 001030035 C 001 001030035 D 065... (6 Replies)
Discussion started by: satyar
6 Replies

3. Shell Programming and Scripting

Merging columns based on one or more column in two files

I have two files. FileA.txt 30910 rs7468327 36587 rs10814410 91857 rs9408752 105797 rs1133715 146659 rs2262038 152695 rs2810979 181843 rs3008128 182129 rs3008131 192118 rs3008170 FileB.txt 30910 1.9415219673 0 36431 1.3351312477 0.0107191428 36587 1.3169171182... (2 Replies)
Discussion started by: genehunter
2 Replies

4. Shell Programming and Scripting

Merging two files with condition

I have two files of the type 111 222 10 112 223 20 113 224 30 114 225 20 and 111 222 9 444 555 8 113 224 32 666 777 25 I want to merge files based on 1 and 2nd column. if 1st and 2nd column are unique in file 1 and 2 keep... (3 Replies)
Discussion started by: digipak
3 Replies

5. Shell Programming and Scripting

merging two files based on first column

I had two files file1 and file2. I want a o/p file(file3) like below using first column as ref. Pls give suggestion ass join is not working as the number of lines in each file is nealry 5 C? file1 --------------------- 404000324810001 Y 404000324810004 N 404000324810008 Y 404000324810009 N... (1 Reply)
Discussion started by: p_sai_ias
1 Replies

6. UNIX for Dummies Questions & Answers

Merging two files based on two columns to make a third file

Hi there, I'm trying to merge two files and make a third file. However, two of the columns need to match exactly in both files AND I want everything from both files in the output if the two columns match in that row. First file looks like this: chr1 10001980 T A Second... (12 Replies)
Discussion started by: infiniteabyss
12 Replies

7. Shell Programming and Scripting

Merging 2 files based on a common column

Hi All, I do have 2 files file 1 has 4 tab delimited columns 234 a c dfgyu 294 b g fih 302 c h jzh 328 z c san 597 f g son File 2 has 2 tab delimted columns 234 23 302 24 597 24 I want to merge file 2 with file 1 based on the data common in both files which is the first column so... (6 Replies)
Discussion started by: Lucky Ali
6 Replies

8. Shell Programming and Scripting

Merging files based on the contents

Hi, I have a file f1 having the contents as below select (<condn>) from dual I have another file f2 having the contents as below 1, 2, 3 I want to replace <condn> in f1 with the contents of f2 I tried using sed like this sed "s:<condn>:`cat f2`:g" f1 The above command resulted in sed:... (3 Replies)
Discussion started by: mr_manii
3 Replies

9. Shell Programming and Scripting

merging column from two files based on identifier

Hi, I have two files consisting of two columns. So I want to merge column 2 if column 1 is the same. So heres an example of what I mean. FILE1 driver 444 car 333 hat 222 FILE2 driver 333 car 666 hat 999 So I want to merge the column 2's together so... (4 Replies)
Discussion started by: phil_heath
4 Replies

10. Shell Programming and Scripting

merging two files based on some key

I have to merge two files: The files are having the same format like A0this is first line TOlast line silmilarly other lines. I have to search for A0 line in the second file also and then put the data in the third file under A0 heading ,then for A1 and so on. A0 portion will be treminated... (1 Reply)
Discussion started by: Vandana Yadav
1 Replies
Login or Register to Ask a Question