For something that can take any number of groups separated by blank lines in both files, your could try:
Code:
awk '
function print_rest() {
while(c1[g2] > c2)
printf("%s\t\n", d[g2, ++c2])
if(++g2 <= g1)
print ""
c2 = 0
}
BEGIN { g1 = g2 = 1
}
FNR == NR {
if(!NF) {
g1++
next
}
d[g1, ++c1[g1]] = $1
next
}
!NF { print_rest()
next
}
{ printf("%s\t%s\n", d[g2, ++c2], $1)
}
END { print_rest()
}' file1 file2
If you want to try this on a Solaris/SunOS system, change awk to /usr/xpg4/bin/awk, /usr/xpg6/bin/awk, or nawk.
If you want to keep the spaces that were present in some of your sample file1 and file2 input lines, change both occurrences of $1 in the above script with $0. (Using $1 seemed to produce output closer to what you said you wanted.)
When run with your sample input files, the above produces the output:
Hi all,
I need to join two columns from two different files file1.txt and file2.txt and append in a new file. Example :
$cat file1.txt
ABCD.ksh:010141
ABCD.ksh:010511
ABCD.ksh:010815
ABCD.ksh:011114
ABCD.ksh:011415
ABCD.ksh:011720
ABCD.ksh:012022
ABCD.ksh:012830
ABCD.ksh:014432... (5 Replies)
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,
I have file1.txt and file2.txt and would like to create file3.txt based on one column in UNIX
Eg:
file1.txt
17328756,0000786623.pdf,0000786623
20115537,0000793892.pdf,0000793892
file2.txt
12521_74_4.zip,0000786623.pdf
12521_15_5.zip,0000793892.pdf
Desired Output
... (5 Replies)
Hello everyone!!
I am not completely new to shell script but I havent been able to find the answer to my problem and I'm sure there are some smart brains here up for the challenge :D.
I have several CSV files that I need to combine into one, but I also need to know where each row came from.... (7 Replies)
hi i have two files and i wanted to join them using common column. try to do this using "join" command but that did not help.
File 1:
123 9a.vcf hy92.vcf hy90.vcf
Index Ref Alt Ref Alt Ref Alt
315 14 0 7 4 ... (6 Replies)
Hello all,
I am quite new in linux shell scripting and I have this issue.
I ve got some files including measurements taken every 10minutes for a whole day.
File name format is: 00.00, 00.10, 00.20,....23.50
File structure is: x | y | temperature
x and y is the same in all files (same... (12 Replies)
Hi All,
I have 4 files in below format. I took them as an example.
File 1: Cut from position 1-4 then 6-7 then 8-14 then rest left and make them as columns in one new file. Inserting character H to the initial of all line like HCTOT.
CTOT 456787897 Low fever
CTOR 556712345 High fever... (2 Replies)
Hi ALL,
I have two file. I need to combine these two file based on a layout.
I used the below code and able to extract the record. But now able to insert that to a 3'rd file in between the extract
FILE 1
CAID NUMBER 1-20
TID NUMBER 21-22
LABEL CHAR 23-44
BASE 45-60... (5 Replies)
Discussion started by: arunkumar_mca
5 Replies
LEARN ABOUT CENTOS
igawk
IGAWK(1) Utility Commands IGAWK(1)NAME
igawk - gawk with include files
SYNOPSIS
igawk [ all gawk options ] -f program-file [ -- ] file ...
igawk [ all gawk options ] [ -- ] program-text file ...
DESCRIPTION
Igawk is a simple shell script that adds the ability to have ``include files'' to gawk(1).
AWK programs for igawk are the same as for gawk, except that, in addition, you may have lines like
@include getopt.awk
in your program to include the file getopt.awk from either the current directory or one of the other directories in the search path.
OPTIONS
See gawk(1) for a full description of the AWK language and the options that gawk supports.
EXAMPLES
cat << EOF > test.awk
@include getopt.awk
BEGIN {
while (getopt(ARGC, ARGV, "am:q") != -1)
...
}
EOF
igawk -f test.awk
SEE ALSO gawk(1)
Effective AWK Programming, Edition 1.0, published by the Free Software Foundation, 1995.
AUTHOR
Arnold Robbins (arnold@skeeve.com).
Free Software Foundation Nov 3 1999 IGAWK(1)