awk '
{a[$1]=$1; f[$1]=NF; for (i=2; i<=NF; i++) if ($i != "NA") b[$1 FS i]=$i} # load id and id columns arrays
END {
for (i in a) { # loop thru id array
l=i; # initialize output string
for (j=2; j<=f[i]; j++) { # loop thru id columns array
l=l FS ((b[i FS j]) ? b[i FS j] : "NA"); # fill output string with output values from id columns array
}
print l; # print output string
}
}' infile
Hi,
I need to join two files based on first column of both files.If first column of first file matches with the first column of second file, then the lines should be merged together and go for next line to check. It is something like:
File one:
110001 abc efd
110002 fgh dfg
110003 ... (10 Replies)
Hi everyone,
I'm just wondering how could I using awk language merge two files by comparison of one their row.
I mean, I have one file like this:
file#1:
21/07/2009 11:45:00 100.0000000 27.2727280
21/07/2009 11:50:00 75.9856644 25.2492676
21/07/2009 11:55:00 51.9713287 23.2258072... (4 Replies)
Input_file
data1 USA 100 ASE
data3 UK 20 GWQR
data4 Brazil 40 QWE
data2 Scotland 60 THWE
data5 USA 40 QWERR
Reference_file
USA 12312 34532
1324 Brazil 23321
231 3421 Scotland
342 34235 UK
231 141 England... (1 Reply)
Hi,
Can anyone suggest quick way to get desired output?
Sample input file content:
A 12 9
A -0.3 2.3
B 1.0 -4
C 34 1000
C -111 900
C 99 0.09
Output required:
A 12 9 -0.3 2.3
B 1.0 -4
C 34 1000 -111 900 99 0.09
Thanks (3 Replies)
I am trying to merge two lines to one based on some matching condition.
The file is as follows:
Matches filter:
'request ', timestamp, <HTTPFlow
request=<GET:
Matches filter:
'request ', timestamp, <HTTPFlow
request=<GET:
Matches filter:
'request ', timestamp, <HTTPFlow
... (8 Replies)
Hi,
Anyone did experience to merge data at same column but different row previously by using awk, sed, perl, etc?
Input File:
SSO12256
SSO0001
thiD-1
rbsK-1
SSO0006
SSO0007
SSO0008
SSO0009
SSO0010
SSO0011
Desired Output File: (5 Replies)
Hi ALL,
We have requirement in a file, i have multiple rows.
Example below:
Input file rows
01,1,102319,0,0,70,26,U,1,331,000000113200000011920000001212
01,1,102319,0,1,80,20,U,1,241,00000059420000006021
I need my output file should be as mentioned below. Last field should split for... (4 Replies)
Discussion started by: kotra
4 Replies
LEARN ABOUT CENTOS
funmerge
funmerge(1) SAORD Documentation funmerge(1)NAME
funmerge - merge one or more Funtools table files
SYNOPSIS
funmerge [-w|-x] -f [colname] <iname1> <iname2> ... <oname>
OPTIONS -f # output a column specifying file from which this event came
-w # adjust position values using WCS info
-x # adjust position values using WCS info and save old values
DESCRIPTION
funmerge merges FITS data from one or more FITS Binary Table files or raw event files.
The first argument to the program specifies the first input FITS table or raw event file. If "stdin" is specified, data are read from the
standard input. Use Funtools Bracket Notation to specify FITS extensions and row filters. Subsequent arguments specify additional event
files and tables to merge. (NB: Stdin cannot not be used for any of these additional input file arguments.) The last argument is the out-
put FITS file. The columns in each input table must be identical.
If an input file begins with the '@' character, it is processed as an include file, i.e., as a text file containing event file names (as
well as blank lines and/or comment lines starting with the '#' sign). If standard input is specified as an include file ('@stdin'), then
file names are read from the standard input until EOF (^D). Event files and include files can be mixed on a command line.
Rows from each table are written sequentially to the output file. If the switch -f [colname] is specified on the command line, an addi-
tional column is added to each row containing the number of the file from which that row was taken (starting from one). In this case, the
corresponding file names are stored in the header parameters having the prefix FUNFIL, i.e., FUNFIL01, FUNFIL02, etc.
Using the -w switch (or -x switch as described below), funmerge also can adjust the position column values using the WCS information in
each file. (By position columns, we mean the columns that the table is binned on, i.e., those columns defined by the bincols= switch, or
(X,Y) by default.) To perform WCS alignment, the WCS of the first file is taken as the base WCS. Each position in subsequent files is
adjusted by first converting it to the sky coordinate in its own WCS coordinate system, then by converting this sky position to the sky
position of the base WCS, and finally converting back to a pixel position in the base system. Note that in order to perform WCS alignment,
the appropriate WCS and TLMIN/TLMAX keywords must already exist in each FITS file.
When performing WCS alignment, you can save the original positions in the output file by using the -x (for "xtra") switch instead of the
-w switch (i.e., using this switch also implies using -w) The old positions are saved in columns having the same name as the original
positional columns, with the added prefix "OLD_".
Examples:
Merge two tables, and preserve the originating file number for each row in the column called "FILE" (along with the corresponding file name
in the header):
[sh] funmerge -f "FILE" test.ev test2.ev merge.ev
Merge two tables with WCS alignment, saving the old position values in 2 additional columns:
[sh] funmerge -x test.ev test2.ev merge.ev
This program only works on raw event files and binary tables. We have not yet implemented image and array merging.
SEE ALSO
See funtools(7) for a list of Funtools help pages
version 1.4.2 January 2, 2008 funmerge(1)