Sponsored Content
Top Forums Shell Programming and Scripting Help building the logic for a script Post 302212801 by quine on Tuesday 8th of July 2008 11:28:28 AM
Old 07-08-2008
So the essence of the problem is that when a USE for the credit (the "success" message) for a particular msisdn, you want to record all the "line" information for that msisdn. But the USE record comes AFTER the recording record. Is that the core of it?

I have a few questions...

1) Is this all being recorded moment by moment in one file like a log, or are the "USE" records in a separate file?

2) It makes sense that if there is a USE record where there has been no line record it would be an error.

3) Can you get two "line records" with the same msisdn without a USE record in between? If yes, you must account for this. How about the reverse? Two or mor uses for each recording? Either that is an error too, or you add up the credits or something, etc.

4) What happens if a line record never gets used? That is, how long do you hold (store) un-used "line records" before they become errors (if they ever do)?

I would start by storing the "line records" in a hash (perl). Basically you read along this file and every time you encounter a "line record" you store it using the msisdn as the index of the hash. As you come across a USE record (I'm assuming one log file here that is growing was you are reading it), you look for it's msisdn already in the hash (exists() in perl). If found, you have the line data as the value of the hash, and you can DELETE that value from the hash since it is accounted for, etc. That would be one way to approach it. If you don't have hashes, you will have to use an array, search it, etc. So long as the number of un-used line records stays low, performance shouldn't degrade.
 

2 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Help required on building the logic

Hi, Can anyone please help me on building the logic for writing a shell script which can delete blank lines from a file and count the number of duplicate lines in a file. Thanks, Indra (2 Replies)
Discussion started by: igandu
2 Replies

2. Shell Programming and Scripting

Need help in building Unix script

Hi all, We have a requirement like we need to create a program which will change a particular string in the file. For example +=KA1238767 1121 3344645 686943 22356 01 567893 12435 12121 983627 121 1092 091217 02 may be for engine failure In the above file we need to change the bold string... (2 Replies)
Discussion started by: susant.igate
2 Replies
TCHMGR(1)							   Tokyo Cabinet							 TCHMGR(1)

NAME
tchmgr - the command line utility of the hash database API DESCRIPTION
The command `tchmgr' is a utility for test and debugging of the hash database API and its applications. `path' specifies the path of a database file. `bnum' specifies the number of buckets. `apow' specifies the power of the alignment. `fpow' specifies the power of the free block pool. `key' specifies the key of a record. `value' specifies the value of a record. `file' specifies the input file. tchmgr create [-tl] [-td|-tb|-tt|-tx] path [bnum [apow [fpow]]] Create a database file. tchmgr inform [-nl|-nb] path Print miscellaneous information to the standard output. tchmgr put [-nl|-nb] [-sx] [-dk|-dc|-dai|-dad] path key value Store a record. tchmgr out [-nl|-nb] [-sx] path key Remove a record. tchmgr get [-nl|-nb] [-sx] [-px] [-pz] path key Print the value of a record. tchmgr list [-nl|-nb] [-m num] [-pv] [-px] [-fm str] path Print keys of all records, separated by line feeds. tchmgr optimize [-tl] [-td|-tb|-tt|-tx] [-tz] [-nl|-nb] [-df] path [bnum [apow [fpow]]] Optimize a database file. tchmgr importtsv [-nl|-nb] [-sc] path [file] Store records of TSV in each line of a file. tchmgr version Print the version information of Tokyo Cabinet. Options feature the following. -tl : enable the option `HDBTLARGE'. -td : enable the option `HDBTDEFLATE'. -tb : enable the option `HDBTBZIP'. -tt : enable the option `HDBTTCBS'. -tx : enable the option `HDBTEXCODEC'. -nl : enable the option `HDBNOLCK'. -nb : enable the option `HDBLCKNB'. -sx : the input data is evaluated as a hexadecimal data string. -dk : use the function `tchdbputkeep' instead of `tchdbput'. -dc : use the function `tchdbputcat' instead of `tchdbput'. -dai : use the function `tchdbaddint' instead of `tchdbput'. -dad : use the function `tchdbadddouble' instead of `tchdbput'. -px : the output data is converted into a hexadecimal data string. -pz : do not append line feed at the end of the output. -m num : specify the maximum number of the output. -pv : print values of records also. -fm str : specify the prefix of keys. -tz : enable the option `UINT8_MAX'. -df : perform defragmentation only. -sc : normalize keys as lower cases. This command returns 0 on success, another on failure. SEE ALSO
tchtest(1), tchmttest(1), tchdb(3), tokyocabinet(3) Man Page 2011-02-12 TCHMGR(1)
All times are GMT -4. The time now is 05:35 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy