It seems to me that both files contain the same information, though in different formats. A simpler solution would be to use a different algorithm, which builds an internal list of book-pairs in one pass using one data file:
Test run:
A perl solution which is probably faster:
Test run, using the same data file as with the sh/awk/sort solution:
Note: Its been about 10 years since I've written anything more than a one-liner in perl, so perhaps a perl guru can slash that to a couple of lines.
Hi all!
I am relatively new to UNIX staff, and I have come across a problem:
I have a big directory, which contains 100 smaller ones. Each of the 100 contains a file ending in .txt , so there are 100 files ending in .txt
I want to split each of the 100 files in smaller ones, which will contain... (4 Replies)
$mystring = "name:blk:house::";
print "$mystring\n";
@s_format = split(/:/, $mystring);
for ($i=0; $i <= $#s_format; $i++) {
print "index is $i,field is $s_format";
print "\n";
}
$size = $#s_format + 1;
print "total size of array is $size\n";
i am expecting my size to be 5, why is it... (5 Replies)
I have gone through all the threads in the forum and tested out different things. I am trying to split a 3GB file into multiple files. Some files are even larger than this.
For example:
split -l 3000000 filename.txt
This is very slow and it splits the file with 3 million records in each... (10 Replies)
Hi,
I have some output in the form of:
#output:
abc123
def567
hij890
ghi324
the above is in one column, stored in the variable x ( and if you wana know about x... x=sprintf(tolower(substr(someArray,1,1)substr(userArray,3,1)substr(userArray,2,1)))
when i simply print x (print x) I get... (7 Replies)
Hi... I have a question regarding the split function in PERL.
I have a very huge csv file (more than 80 million records). I need to extract a particular position(eg : 50th position) of each line from the csv file. I tried using split function. But I realized split takes a very long time.
Also... (1 Reply)
Hi... I have a question regarding the split function in PERL.
I have a very huge csv file (more than 80 million records). I need to extract a particular position(eg : 50th position) of each line from the csv file. I tried using split function. But I realized split takes a very long time.
Also... (0 Replies)
Hi... I have a question regarding the split function in PERL.
I have a very huge csv file (more than 80 million records). I need to extract a particular position(eg : 50th position) of each line from the csv file. I tried using split function. But I realized split takes a very long time.
Also... (1 Reply)
my @d =split('\|', $_);
west|ACH|3|Y|LuV|N||N||
Qt|UWST|57|Y|LSV|Y|Bng|N|KT|
It Returns d as 8 for First Line, and 9 as for Second Line . I want to Process Both the Files, How to Handle It. (3 Replies)
Hello;
I have a file consists of 4 columns separated by tab. The problem is the third fields. Some of the them are very long but can be split by the vertical bar "|". Also some of them do not contain the string "UniProt", but I could ignore it at this moment, and sort the file afterwards. Here is... (5 Replies)
Discussion started by: yifangt
5 Replies
LEARN ABOUT CENTOS
xml2po
XML2PO(1) [FIXME: manual] XML2PO(1)NAME
xml2po - program to create a PO-template file from a DocBook XML file and merge it back into a (translated) XML file
SYNOPSIS
xml2po [OPTIONS] [XMLFILE]
DESCRIPTION
This manual page documents briefly the xml2po command.
xml2po is a simple Python program which extracts translatable content from free-form XML documents and outputs gettext compatible POT
files. Translated PO files can be turned into XML output again.
It can work it's magic with most "simple" tags, and for complicated tags one has to provide a list of all tags which are "final" (that will
be put into one "message" in PO file), "ignored" (skipped over) and "space preserving".
OPTIONS
The program follows the usual GNU command line syntax, with long options starting with two dashes (`-'). A summary of options is included
below.
-a, --automatic-tags
Automatically decide if tags are to be considered "final" or not.
-k, --keep-entities
Don't expand entities (default). See also the -e option.
-e, --expand-all-entities
Expand all entities (including SYSTEM ones).
-m, --mode=TYPE
Treat tags as type TYPE (default: docbook).
-o, --output=FILE
Print resulting text (XML while merging translations with "-p" or "-t" options, POT template file while extracting strings, and
translated PO file with "-r" option) to the given FILE.
-p, --po-file=FILE
Specify a PO FILE containing translation and output XML document with translations merged in.
-r, --reuse=FILE
Specify a translated XML document in FILE with the same structure to generate translated PO file for XML document given on command
line.
-t, --translation=FILE
Specify a MO file containing translation and output XML document with translations merged in.
-u, --update-translation=LANG.po
Update a PO file using msgmerge.
-l, --language=LANG
Explicitly set language of the translation.
-h, --help
Show summary of options.
-v, --version
Show version of program.
EXAMPLES
Creating POT template files
To create a POT template book.pot from an input file book.xml, which consists of chapter1.xml and chapter2.xml (external entities), run:
/usr/bin/xml2po -o book.pot book.xml chapter1.xml chapter2.xml
To expand entities use the -e option:
/usr/bin/xml2po -e -o book.pot book.xml
Creating translated XML files (merging back PO files)
After translating book.pot into LANG.po, merge the translations back by using -p option for each XML file:
/usr/bin/xml2po -p LANG.po -o book.LANG.xml book.xml
/usr/bin/xml2po -p LANG.po -o chapter1.LANG.xml chapter1.xml
/usr/bin/xml2po -p LANG.po -o chapter2.LANG.xml chapter2.xml
If you used the -e option to expand entities, you should use it again to merge back the translation into an XML file:
/usr/bin/xml2po -e -p LANG.po -o book.LANG.xml book.xml
Updating PO files
When base XML file changes, the real advantages of PO files come to surface. There are 2 ways to merge the translation. The first is to
produce a new POT template file (additionally use the -e if you decided earlier to expand entities). Afterwards run msgmerge to merge the
translation with the new POT file:
/usr/bin/msgmerge -o tmp.po LANG.po book.pot
Now rename tmp.po to LANG.po and update your translation. Alternatively, xml2po provides the -u option, which does exactly these two steps
for you. The advantage is, that it also runs msgfmt to give you a statistical output of translation status (count of translated,
untranslated and fuzzy messages). Additionally use the -e if you decided earlier to expand entities:
/usr/bin/xml2po -u LANG.po book.xml
SEE ALSO
msgmerge (1), msgfmt (1)
AUTHOR
This manual page was written by Daniel Leidert daniel.leidert@wgdd.de for the Debian system (but may be used by others). Permission is
granted to copy, distribute and/or modify this document under the terms of the GNU General Public License, Version 2 any later version
published by the Free Software Foundation.
COPYRIGHT
Copyright (C) 2005 Daniel Leidert
[FIXME: source] 2005/02/10 XML2PO(1)