Usage examples
Search inside a single file
In this example we will search inside a particular file. We will use the file testfile.txt that contains several lines with possible card numbers. The contents of this file is this:
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Phasellus quam nibh, tempus ac pulvinar at, finibus eu lacus. Vestibulum vel nibh vitae lorem scelerisque consequat. Fusce cursus dui auctor lorem volutpat fermentum ut ac lacus. Sed vitae leo orci. Sed consequat scelerisque dolor, quis dictum urna porta sit amet. Donec non felis non tellus consectetur sagittis. Curabitur venenatis, magna ac gravida mollis, sem ligula eleifend augue, ac laoreet nisl nulla vel diam. Nullam euismod turpis arcu, id interdum turpis porttitor vitae. Ut sit amet est nulla. Nulla metus orci, sagittis vel mollis a, porta eu leo. Nulla vel mauris vitae lectus pellentesque aliquet. Quisque a risus risus. Curabitur vitae finibus leo. Nullam molestie lobortis dui ac rutrum. Sed ac justo nibh.
Duis ac maximus diam. Morbi laoreet scelerisque elit, a porta tellus laoreet vitae. Integer tincidunt rutrum ex, nec gravida felis euismod in. Fusce sed orci felis. Proin arcu justo, commodo vel dolor ut, ultricies porta enim. Sed blandit, justo hendrerit tincidunt luctus, turpis dui congue ligula, in placerat neque magna non nulla. Nulla volutpat aliquet metus, imperdiet auctor augue ullamcorper sed. Donec dui magna, efficitur id magna a, iaculis porta tortor. Morbi purus urna, consequat eu volutpat non, malesuada sit amet urna. Ut imperdiet neque massa, quis tincidunt odio rhoncus et. Morbi id viverra mauris. Proin dictum, nulla vel eleifend ultrices, sem lorem accumsan nisl, nec accumsan nulla metus et justo. Nunc feugiat nec nibh in mollis. Fusce volutpat ultrices pretium.
Donec bibendum blandit vehicula. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Donec in quam at urna faucibus semper. Fusce lobortis, dolor ut porttitor eleifend, mi velit aliquet urna, et euismod risus est ornare lorem. Morbi sapien neque, dictum in sapien ac, suscipit egestas diam. Phasellus aliquam pellentesque feugiat. Donec varius turpis a feugiat eleifend. Maecenas tristique cursus elit, et aliquet lacus scelerisque at.
Interdum et malesuada fames ac ante ipsum primis in faucibus. Vivamus efficitur mattis leo, nec fringilla diam finibus finibus. Quisque vestibulum feugiat elit, et lobortis ipsum porttitor a. Morbi placerat convallis orci, at venenatis elit viverra consectetur. Sed efficitur mi vitae hendrerit porta. Nam at dolor vitae augue varius ultrices eget sit amet enim. Praesent eros sem, rhoncus in tempus aliquam, porta id erat. Pellentesque nisl nulla, lacinia ac sem convallis, maximus vehicula nulla. Phasellus viverra nisi a euismod ornare. Pellentesque finibus, dolor non mattis hendrerit, orci orci egestas arcu, vitae lacinia felis nunc id nisi. Orci varius natoque penatibus et magnis dis parturient montes, nascetur ridiculus mus. Integer convallis justo vitae libero iaculis, non pulvinar ante sodales. Phasellus maximus aliquet risus id sollicitudin. Nullam tincidunt aliquet finibus. Cras aliquet justo non dapibus elementum. Proin iaculis urna at ex convallis tempus.
Nullam semper, dui at faucibus placerat, lorem sem lobortis est, et dapibus velit risus quis felis. Nunc in tellus sed quam consectetur laoreet. Curabitur enim elit, venenatis ut ipsum ut, ultrices sagittis sapien. Nulla at imperdiet metus. Quisque id rhoncus est. Sed urna ipsum, consequat eu congue ut, ornare et odio. Lorem ipsum dolor sit amet, consectetur adipiscing elit.
This contains a possible PAN of length 16: 5460124879850115 and only one (Invalid Luhn)
This contains a possible PAN of length 19: 4231654897895460124 and only one (Valid Luhn but no BIN in file)
This contains more than one possible PANS: 012343567890654659987770694500211348442223369879858420 with different lengths
This contains a possible PAN of length 16: 546012 4264986520A12467803 5460124879850115 55555555A55555555 in the middle of incomplete values
This contains more than one possible PANS: 01234356789065432108777965450021134823369879858420 with different lengths
This contains a possible PAN of length 16: 546012 4264986520A12467803 4303070479835141 55555555A55555555 in the middle of incomplete values
Pellentesque mattis quis eros vitae tristique. Ut feugiat eros ut ultrices vulputate. Nam ex nunc, bibendum sit amet erat id, accumsan rhoncus mi. Curabitur a eros in est eleifend volutpat ac sed mi. Mauris fringilla augue vel tellus condimentum vestibulum. Vivamus sit amet magna sapien. Phasellus in tristique magna. Vestibulum a ipsum id risus lobortis rutrum vitae id leo. Sed vel sem ultrices, mattis tortor eget, tempor metus. Praesent rhoncus faucibus ex a pretium.
Nulla facilisi. Pellentesque sapien magna, elementum vel ultrices sed, luctus ac lectus. Interdum et malesuada fames ac ante ipsum primis in faucibus. Nulla laoreet ex enim, ut suscipit massa volutpat vel. Duis metus quam, mollis nec augue vel, facilisis elementum libero. Cras bibendum tellus a lorem ultrices, in vehicula arcu euismod. Nullam quis commodo mi, vitae tempus massa.
Duis tristique quam eu erat mollis, nec convallis dui dictum. Integer et pharetra nulla. Morbi eget leo id arcu volutpat volutpat. Fusce ipsum justo, consectetur sed nisl eu, molestie tristique metus. Nunc luctus egestas sapien eu eleifend. In facilisis pharetra nisi, vitae consequat velit venenatis viverra. Donec sit amet laoreet dolor. Vivamus suscipit aliquam velit id sollicitudin. Aenean augue lectus, vestibulum et ultricies ac, aliquet ut magna. Cras interdum varius ante ac semper. Aliquam id ante id diam placerat facilisis eget sit amet lorem. Vivamus elit felis, auctor eget dolor a, rhoncus mollis est. Sed eget eleifend neque, ac convallis tortor. Donec scelerisque magna tellus, condimentum commodo eros faucibus ut. Vestibulum tincidunt feugiat lorem, eget euismod dui ornare sed. Fusce et nisl rutrum, ultricies nunc porttitor, vestibulum ligula.
Ut vitae molestie lectus. Nam faucibus molestie tortor, nec porta purus pellentesque eget. Aenean eleifend lacinia tincidunt. Pellentesque pulvinar venenatis tortor sed dapibus. Sed libero orci, scelerisque sed blandit in, viverra sit amet nisi. In ex lacus, malesuada et sollicitudin ac, suscipit vitae dui. Nulla at vulputate sem. Interdum et malesuada fames ac ante ipsum primis in faucibus. Aliquam suscipit rutrum rhoncus. Suspendisse turpis elit, tincidunt id rutrum non, interdum in mi. Aenean sollicitudin ultrices quam id elementum. Proin pretium sagittis nisl, eu blandit magna maximus ac. Donec vitae elit vitae ligula pellentesque ultrices. Sed tincidunt erat vitae nisi tempor, nec eleifend sapien tristique. Nulla facilisi.
Curabitur lobortis nisi sit amet sem lobortis, ut dapibus est tempus. Integer sit amet tellus justo. Proin vestibulum, ligula nec vehicula hendrerit, purus orci elementum nibh, nec sagittis augue est vitae nibh. Sed pretium vel neque in lobortis. In euismod varius facilisis. Mauris pellentesque, arcu a ullamcorper vehicula, erat ligula vehicula dui, eu finibus ante mi non nunc. Maecenas at scelerisque augue. Maecenas egestas rutrum hendrerit. Quisque molestie tellus a lobortis interdum.
Dummy: 40134478940 561232 4018541234659 782 Garbage: 4444555566661111
MASTER TEST CARD: 5430776478902145 5437004645780143 Garbage: 5555666677778888
UNKNOWN: 7213457890456129 (No valid BIN for Master or VISA)
A couple with valid BIN of length 4: 5122562048946520 and 5122562048946529878
A couple with valid BIN of length 5: 5163964487998501 and 5163967787994987927
A couple with valid BIN of length 6: 4006106887790013 and 4006108687720469822
A couple with valid BIN of length 7: 4329386798280458 and 4329386798280798804
A couple with valid BIN of length 8: 4238370190788458 and 4238370190788779828
A PAN of length 16: 4006106887790013
A PAN of length 19: 4006108687720469822
A card number with great confidence: 5473478799804682 and 5473478799728340989
A number located in field 35: 5473477774982067 and 5473477774983330117
Real PANs discarded if --delimited is applied: 54734777749820673 and 54734777749833301175
To search for card numbers inside this file we just put the name of the file as a parameter and the result is something like this:

We can see that 14 possible values were found, 8 of them with a confidence level of 2 and 6 with level 3
If we want to see the details of the values found, we could add the flag --print like this:

Search in multiple files
We can search in several files at the same time, for example, if we have some log files we could perform the search inside all of them in one go.

Or showing the details:

Paranoid mode
If we use the flag --paranoid we will discard most of the filters. We will use the same file of the first example to compare the results.
Showing the details:

Search in Excel files
We will see how to search in Excel files. We need to add the flag --excel
And looking at the details:

Performance
We will process some plain text and Excel files that will take some time to process. First we will process them in the default way which is sequentially:
We can see that 52 files have been analyzed with 27 of them containing possible PAN values in clear. The time it took to analyze them as about 20 seconds.
Now we will perform the same search but using the --parallel option:
Now the time has been reduced to a little above 12 seconds. Probably the reduction in time has not been greater because most of the time was used by analyzing one big Excel file, but the overall time has been reduced greately, similar to the time of processing this single file as the rest have been processed in parallel with this big file.
Now we will see how the --massive flag works regarding performance and how the output is different with this flag.
Note we don't need to specify the --parallel flag as it is already implicit.

See that all plain text files are processed first and after them the Excel files are used. We also see that processed files and their results are displayed as they are used, and for each file we can see their size, processing time, the count of card numbers found, the status ((DIRTY or CLEAN) to show if the file contains or not card numbers, and the file name. We can also see that there is an Excel file that has been skipped because its size if greater than the limit (it occupies 24 Mb while the limit is 10 Mb)