gawk: Merge N files into one


 
Thread Tools Search this Thread
Special Forums Windows & DOS: Issues & Discussions gawk: Merge N files into one
# 8  
Old 05-16-2012
Quote:
Originally Posted by sameeribraimo
And can you explain what represent 1 in the code: {next}1'. I tried 2,3,etc numbers and it works.

Thanks for your time but I am a zero in gawk
An awk statement has the form:

condition {action}

Conditions in awk control the execution of actions and actions are executed when the condition is true (1, 2, 3 or any value other then 0 or "" ).
If the condition is true and there are no actions between braces, awk prints the current record by default.

Try this:
Code:
awk 'NR==1{
  print;nf=NF;next
}
FNR==1{next}
nf!=NF{
  system("rm -f outfile"); exit
}1' file1.txt file2.txt file3.txt > outfile

# 9  
Old 05-16-2012
Thanks in advance.

If the files have the same number of columns it works fine.
But if any file does not have the same number of columns gives error

i have error:
'0 Is not recognized as an internal or external command, operable program or batch file.
# 10  
Old 05-16-2012
I don't get any error.... try nawk instead of awk.
# 11  
Old 05-16-2012
I'm working on windows so i change:

Code:
NR==1{
  print;nf=NF;next
}
FNR==1{next}
nf!=NF{
  system("del -f outfile"); exit
}1

and error is:

The process can not access the file because it is being used by othe
the process.

Last edited by Franklin52; 05-16-2012 at 04:34 PM.. Reason: Please use code tags for data and code samples, thank you
# 12  
Old 05-16-2012
I don't use awk in windows... but you can use the code of post #4 to check the columns of the files and the code of post #2 to merge the file.
# 13  
Old 05-16-2012
I've used gawk on Windows before, but I don't have it available now to play with. You could try using redirection within the script so you may close the file before trying to delete it, and/or storing the output in memory before dumping it into an output file. This shows the latter:

Code:
[mute@geek ~/temp/sameeribraimo]$ cat merge.awk
BEGIN {
        outfile=ARGV[--ARGC]
        print "output: " outfile
}
NR==1{nf=NF;a[r++]=$0}
NF!=nf{exit 1}
FNR!=1{a[r++]=$0}
END {for (i=0;i<r;i++) print a[i] > outfile}

Code:
[mute@geek ~/temp/sameeribraimo]$ gawk -f merge.awk file?.txt output.txt
output: output.txt
[mute@geek ~/temp/sameeribraimo]$ cat output.txt
a b c
1 1 1
2 2 2
3 3 3
4 4 4
5 5 5
6 6 6
7 7 7
8 8 8
9 9 9
10 10 10

# 14  
Old 05-17-2012
moving to Windows forum
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to merge two files?

Dear Frens, I have two files and need to merge into one file. Like File_1: Field1 Field2 1 4 File_2: Field1 Field2 3 5 I need one single output as File_1: Field1 Field2 1 4 3 5 This means taking header from either file. (8 Replies)
Discussion started by: manisha_singh
8 Replies

2. Shell Programming and Scripting

Merge files and generate a resume in two files

Dear Gents, Please I need your help... I need small script :) to do the following. I have a thousand of files in a folder produced daily. I need first to merge all files called. txt (0009.txt, 0010.txt, 0011.txt) and and to output a resume of all information on 2 separate files in csv... (14 Replies)
Discussion started by: jiam912
14 Replies

3. Shell Programming and Scripting

Checking in a directory how many files are present and basing on that merge all the files

Hi, My requirement is,there is a directory location like: :camp/current/ In this location there can be different flat files that are generated in a single day with same header and the data will be different, differentiated by timestamp, so i need to verify how many files are generated... (10 Replies)
Discussion started by: srikanth_sagi
10 Replies

4. Shell Programming and Scripting

Reading in all files from parent directory (GAWK)

Hi all, I'm very, very new to scripting (let alone SHELL) and was wondering if anyone could help me out as I seem to be in a spot of bother. I collect data (.dat files) which are automatically seperated into several sub directories, so the file paths I'm reading in at the moment would be... (11 Replies)
Discussion started by: gd9629
11 Replies

5. Shell Programming and Scripting

Merge 2 files

Hi , This might be the stupidest question I am asking, but I am struck with this problem. I am trying to merge 2 files, file1 has header and file2 has contents. while I merge them , it merges from the 1st line of file1. for ex: file1 col1|col2|col3| file2 123|234|456|... (2 Replies)
Discussion started by: rashmisb
2 Replies

6. Shell Programming and Scripting

Gawk / Awk Merge Lines based on Key

Hi Guys, After windows died on my netbook I installed Lubuntu and discovered Gawk about a month ago. After using Excel for 10+ years I'm amazed how quick and easily Gawk can process data but I'm stuck with a little problem merging data from multiple lines. I'm an SEO Consultant and provide... (9 Replies)
Discussion started by: Jamesfirst
9 Replies

7. Shell Programming and Scripting

How can i merge these two files into several...

Given are File A and File B File A has for example 5 lines: AAA BBB CCC DDD EEE File B has 3 lines: 111 222 333 How can i merge A and B into: 111 222 333 AAA (first line from A) then a new file: (4 Replies)
Discussion started by: Y-T
4 Replies

8. Shell Programming and Scripting

Using GAWK to combine files

Hello All, I have a folder containing few files. Each & every file contain only 1 column. I want to combine only column of all the files through GAWK, separate them by a delimiter and store it to a new file. So basically using GAWK, I want to combine '$1' of all files, separate them by a... (11 Replies)
Discussion started by: paragkalra
11 Replies

9. Shell Programming and Scripting

Merge files of differrent size with one field common in both files using awk

hi, i am facing a problem in merging two files using awk, the problem is as stated below, file1: A|B|C|D|E|F|G|H|I|1 M|N|O|P|Q|R|S|T|U|2 AA|BB|CC|DD|EE|FF|GG|HH|II|1 .... .... .... file2 : 1|Mn|op|qr (2 Replies)
Discussion started by: shashi1982
2 Replies

10. Shell Programming and Scripting

gawk - reading two files & re arrange the columns

Hi, I am trying to read 2 files and writing to the 3rd file if I find the same elements in 2 files. my first file is 1 0 kb12124819 766409 1.586e-01 1 0 kb17160939 773886 8.674e-01 1 0 kb4475691 836671 8.142e-01 1 0 ... (2 Replies)
Discussion started by: ezhil01
2 Replies
Login or Register to Ask a Question