Visit Our UNIX and Linux User Community


Combining Two fixed width columns to a variable length file


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Combining Two fixed width columns to a variable length file
# 1  
Old 06-24-2008
Combining Two fixed width columns to a variable length file

Hi, I have two files.

File1:

File1 contains two fixed width columns ID of 15 characters length and Name is of 100 characters length.

ID Name
1-43<<11 spaces>>Swapna<<94 spaces>>
1-234<<10 spaces>>Mani<<96 spaces>>
1-3456<<9 spaces>>Kapil<<95 spaces>>

File2:

File2 contains two fixed width columns ID of 15 characters length and Name is of 80 characters length.

ID Place
1-3456<<10 spaces>>Boston<<74 spaces>>
1-43<<11 spaces>>London<<74spaces>>

I need an output file of variable length file as follows

Output:

The Output file should contain the matched records of both File1 and File2 based on ID column.

Id Name
1-43<<1 space>>Swapna
1-234
1-3456<<1 space>>Kapil

Thanks in Advance.
# 2  
Old 06-24-2008
Try this:

Code:
awk 'NR==FNR{a[$1]=$2;next}{print $1, a[$1]}' File1 File2

Regards
# 3  
Old 06-24-2008
Thanks for the reply......I have tried by giving the command...............

awk 'NR==FNR{a[$1]=$2;next}{print $1, a[$1]}' File1 File2

or

nawk 'NR==FNR{a[$1]=$2;next}{print $1, a[$1]}' File1 File2

But Iam getting the output as

Id Name
1-43<<1 space>>Swapna
1-3456<<1 space>>Kapil

But I need output as

Id Name
1-43<<1 space>>Swapna
1-234
1-3456<<1 space>>Kapil
# 4  
Old 06-24-2008
Code:
awk '
NR==FNR{a[$1]=$2;next}
a[$1]{print $1, $2;next}
{print $1}' File2 File1

Regards
# 5  
Old 06-24-2008
Thanks

Thanks Franklin...... I got the desired output By giving the following connamd..........

nawk 'NR==FNR{a[$1]=$2;next} a[$1]{print $1, $2;next}{print $1}' file2 file1 > file3

Thanks Once again..............

Previous Thread | Next Thread
Test Your Knowledge in Computers #337
Difficulty: Easy
:set number in vi will add line numbers to the file and automatically save to disk.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Convert variable length record to fixed length

Hi Team, I have an issue to split the file which is having special chracter(German Char) using awk command. I have a different length records in a file. I am separating the files based on the length using awk command. The command is working fine if the record is not having any... (7 Replies)
Discussion started by: Anthuvan
7 Replies

2. UNIX for Dummies Questions & Answers

Length of a fixed width file

I have a fixed width file of length 53. when is try to get the lengh of the record of that file i get 2 different answers. awk '{print length;exit}' <File_name> The above code gives me length 50. wc -L <File_name> The above code gives me length 53. Please clarify on... (2 Replies)
Discussion started by: Amrutha24
2 Replies

3. UNIX for Dummies Questions & Answers

Fixed length file extracting values in columns

How do I extract values in a few columns in a row of a fixed length file? If there are 8 columns and I need to extract values of 2nd,4th and 6 th columns, how do i do that? I used cut command, this I used only for one column. How do I do it more than one column? The below command will give... (1 Reply)
Discussion started by: princetd001
1 Replies

4. Shell Programming and Scripting

Removing duplicates in fixed width file which has multiple key columns

Hi All , I have a requirement where I need to remove duplicates from a fixed width file which has multiple key columns .Also , need to capture the duplicate records into another file . File has 8 columns. Key columns are col1 and col2. Col1 has the length of 8 col 2 has the length of 3. ... (5 Replies)
Discussion started by: saj
5 Replies

5. Shell Programming and Scripting

How to parse fixed-width columns which may include empty fields?

I am trying to selectively display several columns from a db2 query, which gives me a fixed-width output (partial output listed here): --------- -------------------------- ------------ ------ 000 0000000000198012 702 29 000 0000000000198013 ... (9 Replies)
Discussion started by: ahsh79
9 Replies

6. Shell Programming and Scripting

changing a variable length text to a fixed length

Hi, Can anyone help with a effective solution ? I need to change a variable length text field (between 1 - 18 characters) to a fixed length text of 18 characters with the unused portion, at the end, filled with spaces. The text field is actually field 10 of a .csv file however I could cut... (7 Replies)
Discussion started by: dc18
7 Replies

7. Shell Programming and Scripting

Printing Fixed Width Columns

Hi everyone, I have been working on a pretty laborious shellscript (with bash) the last couple weeks that parses my firewall policies (from a Juniper) for me and creates a nifty little columned output. It does so using awk on a line by line basis to pull out the appropriate pieces of each... (4 Replies)
Discussion started by: cixelsyd
4 Replies

8. UNIX for Dummies Questions & Answers

Convert a tab delimited/variable length file to fixed length file

Hi, all. I need to convert a file tab delimited/variable length file in AIX to a fixed lenght file delimited by spaces. This is the input file: 10200002<tab>US$ COM<tab>16/12/2008<tab>2,3775<tab>2,3783 19300978<tab>EURO<tab>16/12/2008<tab>3,28523<tab>3,28657 And this is the expected... (2 Replies)
Discussion started by: Everton_Silveir
2 Replies

9. Shell Programming and Scripting

Comparing column of variable length anf fixed width file

Hi, I have two input files. File1: ID Name Place 1-234~name1~Newyork 1-34~name2~Boston 1-2345~name3~Hungary File1 is a variable length file where each column is seperated by delimitter "~". File2: ID Country 1-34<<11 SPACES>>USA<<7 spaces>> 1-234<<10 SPACES>>UK<<8... (5 Replies)
Discussion started by: manneni prakash
5 Replies

10. Shell Programming and Scripting

creating a fixed length output from a variable length input

Is there a command that sets a variable length? I have a input of a variable length field but my output for that field needs to be set to 32 char. Is there such a command? I am on a sun box running ksh Thanks (2 Replies)
Discussion started by: r1500
2 Replies

Featured Tech Videos