Sponsored Content
Top Forums Shell Programming and Scripting Merge columns of different files Post 302591090 by polsum on Wednesday 18th of January 2012 01:07:48 PM
Old 01-18-2012
Quote:
Originally Posted by yinyuemi
Tha't weird, how about this?
Code:
awk 'FNR==1{t++}{a[t" "$1]=$2;b[$1]}END{for(i in b){printf i ;for(j=1;j<=t;j++)printf FS (length(a[j" "i])?a[j" "i]:"0");print ""}}'

or you can use "cat -A" to see if there're some weird word in your files.
Now this code is working just fine.Smilie Thanks a lot. I dont understand why the first one is not working though.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

compare columns from 2 files and merge

Dear all, Being new to Unix i have a problem. I have 2 files: File 1: 118,1,0,2,3,0,5,0.3,0,0.3,0.6,1 118,2,1,2,2,0,5,0.4,0,0.4,0.4,1 118,4,2,0,3,0,5,0.7,0,0.3,0.6,1 118,6,4,1,0,0,5,0.8,0,0.2,0,1 File 2: 118,1,BFGL-NGS-109695,3610326,0,18,1,0.556,0.389,0.056,0.25,0.8183... (2 Replies)
Discussion started by: samwilkinson
2 Replies

2. Shell Programming and Scripting

merge the two files which has contain columns

Hi may i ask how to accomplish this task: I have 2 files which has multiple columns first file 1 a 2 b 3 c 4 d second file 14 a 9 .... 13 b 10.... 12 c 11... 11 d 12... I want to merge the second file to first file that will looks like this ... (2 Replies)
Discussion started by: jao_madn
2 Replies

3. UNIX for Dummies Questions & Answers

Merge two files with two columns being similar

Hi everyone. How can I merge two files, where each file has 2 columns and the first columns in both files are similar? I want all in a file of 4 columns; join command removes the duplicate columns. 1 Dave 2 Mark 3 Paul 1 Apple 2 Orange 3 Grapes to get it like this in the 3rd file:... (9 Replies)
Discussion started by: Atrisa
9 Replies

4. Shell Programming and Scripting

Merge two files matching columns

Hi! I need to merge two files when col1 (x:x:x) matching and adds second column from file1.txt. # cat 1.txt aaa;a12 bbb;b13 ccc;c33 ddd;d55 eee;e11 # cat 2.txt bbb;b55;34444;d55 aaa;a15;35666;a44 I try with this awk and I get succesfully first column from 1.txt: # awk -F";"... (2 Replies)
Discussion started by: fhluque
2 Replies

5. UNIX for Dummies Questions & Answers

Merge columns from multiple files

Hi all, I've searched the web for a long time trying to figure out how to merge columns from multiple files. I know paste will append columns like so: paste file1 file2 file3 file4 file5 ... But this becomes inconvenient when you want to append a large number of files into a single file. ... (2 Replies)
Discussion started by: torchij
2 Replies

6. Shell Programming and Scripting

Merge columns on different files

Hello, I have two files that have this format: file 1 86.82 0.00 86.82 43.61 86.84 0.00 86.84 43.61 86.86 0.00 86.86 43.61 86.88 0.00 86.88 43.61 file 2 86.82 0.22 86.84 0.22 86.86 0.22 86.88 0.22 I would like to merge these two files such that the final file looks like... (5 Replies)
Discussion started by: kayak
5 Replies

7. Shell Programming and Scripting

Merge 2 files with one reference columns

Hi All Source1 servername1,patchid1 servername1,patchid2 servername1,patchid3 servername2,patchid1 servername2,patchid2 servername3,patchid4 servername3,patchid5 Source2 servername1,appname1 servername1,appname2 servername1,appname3 servername2,appname1 servername2,appname2... (13 Replies)
Discussion started by: mv_mv
13 Replies

8. Shell Programming and Scripting

Merge columns from multiple files

Hello and Good day I have a lot of files with same number of rows and columns.$2 and $3 are the same in all files . I need to merge $2,$3,$6 from first file and $6 from another files. File1: $1 $2 $3 $4 $5 $6... (8 Replies)
Discussion started by: ali.seifaddini
8 Replies

9. Shell Programming and Scripting

Merge files based on columns

011111123444 1234 1 20000 011111123444 1235 1 30000 011111123446 1234 3 40000 011111123447 1234 4 50000 011111123448 1234 3 50000 File2: 011111123444,Rsttponrfgtrgtrkrfrgtrgrer 011111123446,Rsttponrfgtrgtr 011111123447,Rsttponrfgtrguii 011111123448,Rsttponrfgtrgtjiiu I have 2 files... (4 Replies)
Discussion started by: vinus
4 Replies

10. Shell Programming and Scripting

Merge specific columns of two files

Hello, I have two tab delimited text files. Both files have the same number of rows but not necessarily the same number of columns. The column headers look like, File 1: f0order CVorder Name f0 RI_9 E99 E199 E299 E399 E499 E599 E699 E799 E899 E999 File 2:... (9 Replies)
Discussion started by: LMHmedchem
9 Replies
pr(1)							      General Commands Manual							     pr(1)

Name
       pr - print files

Syntax
       pr [ options ] [ files ]

Description
       The  command  prints  the  named files on the standard output.  If file is designated by a minus sign (-), or if no files are specified the
       command assumes standard input.	By default, the listing is separated into pages, each headed by the page number, a date and time, and  the
       name of the file.

       By default, columns are of equal width, separated by at least one space.  Lines that do not fit are truncated. However, if the -s option is
       used, lines are not truncated and columns are separated by the separation character.

       If the standard output is associated with a terminal, error messages are withheld until has finished printing.

Options
       The following options can be used singly or in combination:

       -a      Prints multi-column output across the page.

       -b      Prints blank headers.

       -d      Double-spaces the output.

       -eck    Expands input tabs to character positions k+1, 2*k+1, 3*k+1,... n*k+1.  If k is 0 or is omitted, tabs are set at every eighth posi-
	       tion.  Tab characters in the input are expanded into the appropriate number of spaces.  The default for c (any non-digit character)
	       is the tab character; therefore, if c is given, it is treated as the input tab character.

       -f      Uses form-feed character for new pages.	The default is to use a sequence of line-feeds.  The -f option causes the command to pause
	       before beginning the first page if the standard output is associated with a terminal.

       -h      Uses the next argument as the header to be printed instead of the file name.

       -ick    Replaces  white space in output by inserting tabs to character positions k+1, 2*k+1, 3*k+1,...n*k+1.  If k is 0 or is omitted, tabs
	       are set at every eighth position.  The default for c (any non-digit character) is the tab character; therefore, if c is	given,	it
	       is treated as the input tab character.

       +k      Begins printing with page k (default is 1).

       -k      Produces k-column output (default is 1).  The -e and -i options are assumed for multi-column output.

       -lk     Sets the length of a page to k lines.  The default is 66 lines.

       -m      Merges and prints all files simultaneously, one per column (overrides the -k, and -a options).

       -nck    Numbers	lines.	The default for k is 20.  The number occupies the first k+1 character positions of each column of normal output or
	       each line of -m output.	If c, which is any non-digit character is given, it is appended to the line number  to	separate  it  from
	       whatever follows.  The default for c is a tab.

       -ok     Offsets	each line by k character positions (default is 0).  The number of character positions per line is the sum of the width and
	       offset.

       -p      Pauses before beginning each page if the output is directed to a terminal.  The command rings the bell at the terminal and awaits a
	       carriage return.

       -r      Suppresses diagnostic reports on failure to open files.

       -sc     Separates columns by the single character c instead of by the appropriate number of spaces (default for c is a tab).

       -t      Suppresses  the	five-line  identifying header and the five-line trailer normally supplied for each page.  The -t option causes the
	       command to quit printing after the last line of each file without spacing to the end of the page.

       -wk     Sets the width of a line to k character positions.  The default is 72 for equal-width multi-column output; otherwise  there  is	no
	       limit.

Examples
       Print file1 and file2 as a double-spaced, three-column listing with the heading:  file list.
       pr -3dh "file list" file1 file2
       Write file1 on file2, expanding tabs to columns 10, 19, 28, 37,...:
       pr -e9 -t <file1>file2

Files
       /dev/tty* to suspend messages

See Also
       cat(1)

																	     pr(1)
All times are GMT -4. The time now is 12:49 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy