Sponsored Content
Top Forums Shell Programming and Scripting Matching 10 Million file records with 10 Million in other file Post 302655827 by Chubler_XL on Wednesday 13th of June 2012 08:21:38 PM
Old 06-13-2012
Here is a little bash script to generate 10million test records (for those wanting to test performance of their solutions):

make_test.bash
Code:
for((i=1;i<30000000;i++)) {
   printf -v id "%s%04d%04d%03d" $i $((RANDOM%10000)) $((RANDOM%10000)) $((RANDOM%1000))
   [ $RANDOM -lt 14000 ] && echo "20.04.2012 11.08.44;RECV;APPNAME@HOSTNAME06:$id;processed;Location;contact;status;email_id;2" >&2
   [ $RANDOM -lt 16384 ] && echo "APPNAME@HOSTNAME06:$id;SUCCESS" || echo "APPNAME@HOSTNAME06:$id;FAILURE"
}

Call it like this ./make_test.bash > Status.txt 2> Input.txt

Here is my solution:
Code:
awk -F'[:;]' '
NR==FNR{S[$2]=($3=="SUCCESS"); next}
{ if ($4 in S)
    print $1";"$2";"$3":"$4";"$5";"$6";"$7";"(S[$4]?"SUCCESS":"FAILURE")";"$8";"$9
  else
    print $0
}' Status.txt Input.txt > Result.txt

Will update this post when I know the runtime :-
Stack dump at record 20,127,745 (of 27,713,184) while reading Status.txt after 1m36s runtime

Seems like it's just too much data for my PC. Good news is it didn't seem to take very long to read in the data and there is hope for larger (64bit) servers.

Last edited by Chubler_XL; 06-13-2012 at 09:30 PM..
 

7 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Extract data from large file 80+ million records

Hello, I have got one file with more than 120+ million records(35 GB in size). I have to extract some relevant data from file based on some parameter and generate other output file. What will be the besat and fastest way to extract the ne file. sample file format :--... (2 Replies)
Discussion started by: learner16s
2 Replies

2. Shell Programming and Scripting

sort a file which has 3.7 million records

hi, I'm trying to sort a file which has 3.7 million records an gettign the following error...any help is appreciated... sort: Write error while merging. Thanks (6 Replies)
Discussion started by: greenworld
6 Replies

3. What is on Your Mind?

Pick a Number Between 0 and 20 for 1 Million Bits

Here is an easy game! I wrote a number between 0 and 20 (that can include 0 and 20) on a piece of paper. I am staring at it now, imagining the number so you can read my mind ;) Reply once, and only once, with a number from 0 to 20 and the first person to guess it wins 1,000,000 Bits. ... (24 Replies)
Discussion started by: Neo
24 Replies

4. Shell Programming and Scripting

Tail 86000 lines from 1.2 million line file?

I have a log file that is about 1.2 million lines long and about 300MB. we need a way to clean up this file and only keep the last few thousand lines. if i use tail command we run our of memory as the file is too big. I do have a key word to match on. example, we want to keep every line... (8 Replies)
Discussion started by: robsonde
8 Replies

5. UNIX for Dummies Questions & Answers

Pls. help with script to remove million files

Hi, one of the server, log directory was never cleaned up. We have so many files. I want to remove all the files that starts with dfr* but I get error message when I use the *. rm qfr* bash: /usr/bin/rm: Arg list too long I am trying to write this script but not working. ... (4 Replies)
Discussion started by: samnyc
4 Replies

6. UNIX for Dummies Questions & Answers

Deleting a million of files ..

Hi, Which way is faster rm -rf /path/ or find / -name -exec rm {} \; and why? (7 Replies)
Discussion started by: cain82
7 Replies

7. UNIX for Dummies Questions & Answers

Add 1 million columns

Hi, here is my problem: I've got a file with 6 columns (file1): a b c d e f a b c d e f a b c d e f a b c d e f I need to add 1 million columns to this file, each column needs to be a zero. Here is how the result file (file2) should look like (for the sake of the example, I've only... (7 Replies)
Discussion started by: zajtat
7 Replies
gensprep(8)							 ICU 50.1.2 Manual						       gensprep(8)

NAME
gensprep - compile StringPrep data from files filtered by filterRFC3454.pl SYNOPSIS
gensprep [ -h, -?, --help ] [ -v, --verbose ] [ -c, --copyright ] [ -s, --sourcedir source ] [ -d, --destdir destination ] DESCRIPTION
gensprep reads filtered RFC 3454 files and compiles their information into a binary form. The resulting file, <name>.icu, can then be read directly by ICU, or used by pkgdata(8) for incorporation into a larger archive or library. The files read by gensprep are described in the FILES section. OPTIONS
-h, -?, --help Print help about usage and exit. -v, --verbose Display extra informative messages during execution. -c, --copyright Include a copyright notice into the binary data. -s, --sourcedir source Set the source directory to source. The default source directory is specified by the environment variable ICU_DATA. -d, --destdir destination Set the destination directory to destination. The default destination directory is specified by the environment variable ICU_DATA. ENVIRONMENT
ICU_DATA Specifies the directory containing ICU data. Defaults to /usr/share/icu/50.1.2/. Some tools in ICU depend on the presence of the trailing slash. It is thus important to make sure that it is present if ICU_DATA is set. FILES
The following files are read by gensprep and are looked for in the source /misc for rfc3454_*.txt files and in source /unidata for Normal- izationCorrections.txt. rfc3453_A_1.txt Contains the list of unassigned codepoints in Unicode version 3.2.0.... rfc3454_B_1.txt Contains the list of code points that are commonly mapped to nothing.... rfc3454_B_2.txt Contains the list of mappings for casefolding of code points when Normalization form NFKC is specified.... rfc3454_C_X.txt Contains the list of code points that are prohibited for IDNA. NormalizationCorrections.txt Contains the list of code points whose normalization has changed since Unicode Version 3.2.0. VERSION
50.1.2 COPYRIGHT
Copyright (C) 2000-2002 IBM, Inc. and others. SEE ALSO
pkgdata(8) ICU MANPAGE
18 March 2003 gensprep(8)
All times are GMT -4. The time now is 08:31 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy