1.
One can read the input files one by one, and store the field values in an two-dimensional array, and print it at the end.
2.
If each input file is sorted, one could go for a line-by-line merge (opening and processing all input files at the same time).
--
awk and perl have hashed arrays and can address fields by key values like aaa, aba, ... this is much more efficient than looping through the array and compare the keys.
---------- Post updated 06-06-13 at 03:11 AM ---------- Previous update was 06-05-13 at 04:19 PM ----------
Here is an implementation of 1.
Code:
awk '
NR==FNR { # first file: store key $1 in hash R
R[$1]=++rows
}
FNR==1 { # first line of a file: increase field offset and print header
++fields
printf "%-*s",width,FILENAME
}
{ # all files: store line in two-dimensional hash A; for next files skip the key $1
A[fields,R[$1]]=(NR==FNR)?$0:substr($0,length($1)+2)
}
END { # at the end: print all fields of hash A, replace empty fields by NIL
print ""
for (r=1;r<=rows;r++) {
for (f=1;f<=fields;f++) printf "%-*s",width,((f,r) in A)?A[f,r]:"NIL"
print ""
}
}' width=30 main sub?
BTW the A could also be a one-dimensional hash of strings, where new strings are appended.
Last edited by MadeInGermany; 06-06-2013 at 05:20 AM..
This User Gave Thanks to MadeInGermany For This Post:
Using dd or similar tools to recover data from 2 damaged cdroms, I need a way to then combine the 2 files, 1 from each cd, and make a good file: this all result from finding that certain cd's tops scratch easily even when using the "proper" cd markers, hence making the file useless, however the... (1 Reply)
The following input needs to be manipulated as follows:
INPUT from file or results of command:
============start:
Medium identifier : a45c0213:47eb5485:0aec:0321
Medium label : SQL Disk_11516
Location :
Protected : None ... (2 Replies)
Hi,
I have 5 files basically;namely file1.txt situated each at folder A to E respectively.
I would like to extract out third column from each of these file1.txt from folder A to folder E. Also, I wanted to extract the first and second column which are common. In other words, e.g
... (6 Replies)
my first post ... please be gentle.
I have been working on a script to get info out of mysql. Its a support ticket system database OTRS. I can write the subject of open tickets to a text file with a unique user id.
I also have a text file with the unique user id, username and email adres. I... (11 Replies)
hi people;
this is my file1.txt:192.168.1.1
192.168.1.2
192.168.1.3
192.168.1.4
...
this is my file2.txt:portnames
usernames
maxusercap
...
i want to write to file3.txt:l ./getports 192.168.1.1 'get all;l+;get . portnames;l-'
l ./getports 192.168.1.1 'get all;l+;get . usernames;l-'... (4 Replies)
i made a script on my own. this is for the inventory to all of my AWS servers, and i run it to all of my servers to get the hostname, please look at file2. Then i need some data in file3 as well,. i need to combine them
#cat file1
192.10.1.41
server.age.com
######
192.10.0.40
ssh cant... (10 Replies)
Hi,
How can I combine the data of of three files into one new file?
I try to give as much informations as possible.
The three existing files are called file1 file2 and file3
the new file should named output_combined.
The size of the files will be around 900 words/lines each .. but always... (5 Replies)
i use the split command to split a one terabyte backup file into 10 chunks of 100 GB each. The files are split one after the other. While the files is being split, I will like to scp the files one after the other as soon as the previous one completes, from server A to Server B. Then on server B ,... (2 Replies)
Discussion started by: malaika
2 Replies
LEARN ABOUT CENTOS
paps
PAPS(1) General Commands Manual PAPS(1)NAME
paps - UTF-8 to PostScript converter using Pango
SYNOPSIS
paps [options] files...
DESCRIPTION
paps reads a UTF-8 encoded file and generates a PostScript language rendering of the file. The rendering is done by creating outline curves
through the pango ft2 backend.
OPTIONS
These programs follow the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is
included below.
--landscape
Landscape output. Default is portrait.
--columns=cl
Number of columns output. Default is 1.
--font=desc
Set the font description. Default is Monospace 12.
--rtl Do rtl layout.
--paper ps
Choose paper size. Known paper sizes are legal, letter, a4. Default is A4.
--bottom-margin=bm
Set bottom margin in postscript points (1/72 inch). Default is 36.
--top-margin=tm
Set top margin. Default is 36.
--left-margin=lm
Set left margin. Default is 36.
--right-margin=rm
Set right margin. Default is 36.
--help Show summary of options.
--header
Draw page header for each page.
--markup
Interpret the text as pango markup.
--encoding=ENCODING
Assume the documentation encoding is ENCODING.
--lpi Set the lines per inch. This determines the line spacing.
--cpi Set the characters per inch. This is an alternative method of specifying the font size.
--stretch-chars
Indicates that characters should be stretched in the y-direction to fill up their vertical space. This is similar to the texttops
behaviour.
AUTHOR
paps was written by Dov Grobgeld <dov.grobgeld@gmail.com>.
This manual page was written by Lior Kaplan <kaplan@debian.org>, for the Debian project (but may be used by others).
April 17, 2006 PAPS(1)