- Joye’s “moreutils” collection – http://joeyh.name/code/moreutils/. Contains following:
- chronic: runs a command quietly unless it fails
- combine: combine the lines in two files using boolean operations
- ifdata: get network interface info without parsing ifconfig output
- ifne: run a program if the standard input is not empty
- isutf8: check if a file or standard input is utf-8
- lckdo: execute a program with a lock held
- mispipe: pipe two commands, returning the exit status of the first
- parallel: run multiple jobs at once
- pee: tee standard input to pipes
- sponge: soak up standard input and write to a file
- ts: timestamp standard input
- vidir: edit a directory in your text editor
- vipe: insert a text editor into a pipe
- zrun: automatically uncompress arguments to command
- num-utils – http://suso.suso.org/programs/num-utils/. Contains:
- average: A program for calculating the average of numbers.
- bound: Finds the boundary numbers (min and max) of input.
- interval: Shows the numeric intervals between each number in a sequence.
- normalize: Normalizes a set of numbers between 0 and 1 by default.
- numgrep: Like normal grep, but for sets of numbers.
- numprocess: Do mathmatical operations on numbers.
- numsum: Add up all the numbers.
- random: Generate a random number from a given expression.
- range: Generate a set of numbers in a range expression.
- round: Round each number according to it’s value.
- Scylla and Charybdis, Tools – http://www.scylla-charybdis.com/tool.php. Contains:
- checkrun: Program watchdog to terminate a program with starving output)
- cmpfast: Fast compare two files binary)
- count: Copy lines, shows progress)
- dbm: A little tool to access gdbm files from shell.)
- dirlist: Primitive directory lister, quicker than ls, find and echo *)
- diskus: Disk geometry checking and repair tool)
- getrealpath: Print realpath to stdout)
- histogram: Count bytes in file)
- kdmktone: Make the console beep)
- keypressed: Nonblocking, nondestructible test for waiting data on TTYs, sockets and probably pipes)
- killmem: Protect some memory against paging until you need free memory)
- lockdir: Create a directory for locking purpose)
- lockrun: Exclusively run something by placing a file lock)
- md5chk: Create md5sums for easy shell usage)
- minicron: This is a program which starts other programs after some time)
- mvatom: Move files by atomic rename instead of copy.)
- printansi: Like /bin/echo but ANSI-escapes the output)
- printargs: Like “hello world” but dumps the argc array)
- ptybuffer: daemonize interactive tty line driven programs with output history)
- runningfor: Return true until the given time periode is reached.)
- slowdown: Slowdown processes or pipes.)
- socklinger: Execute quick hack shell scripts connected to a socket.)
- sq: SQLITE3 query tool for shell usage)
- timeout: Execute a command or pipe only for a given duration.)
- timestart: Start a program N-M times in parallel by running it it each A-B seconds)
- tinohtmlparse: Simple HTML parser to extract information from HTML files by shell)
- tinoseq: An integer seq implementation)
- udevraw: Dump udev events for bash usage)
- unbuffered: Copy stdin to stdout and stderr, unbuffered)
- watcher: A Python2.6 script to watch files, pipes or Unix domain sockets)
2012.06.25
More unix tools
2012.02.14
OpenSSL
- HTTPS server banner:
openssl s_client -connect:IPAddress:443
after connection is established, type in “HEAD / HTTP/1.0” and press enter.
Alternative:echo -e "HEAD / HTTP/1.0\n\n" | openssl s_client -quiet -connect IPAddress:443
- NTTPS server banner
openssl s_client -connect:IPAddress:563
- IMAPS server banner:
openssl s_client -connect:IPAddress:993
- POP3S server banner:
openssl s_client -connect:IPAddress:995
- Identifying SSL cyphers:
openssl s_client -connect website:443 -cipher EXPORT40 openssl s_client -connect website:443 -cipher NULL openssl s_client -connect website:443 -cipher HIGH
- Generating password hash four unix:
openssl passwd -1 -salt QIGCa pippo
output: $1$QIGCa$/ruJs8AvmrkmzKTzM2TYE.
- Converting a PKCS12-encoded (or .pfx) certificate to PEM format:
openssl pkcs12 -in CertFile.p12 -out NewCertFile.pem -nodes. -cacerts
- Converting a DER-encoded certificate to PEM format:
openssl x509 -in CertFile.crt. -inform DER -out NewCertName.pem -outform PEM
- Download a proxy’s public certificate:
openssl s_client-connect ProxyHostname:port proxycert.pem
- Create a key:
openssl genrsa -des3 -out server.key 1024
- Create a CSR (certificate signing request):
openssl req -new -key server.key -out server.csr
- Remove a password from a key:
cp server.key server.key.org openssl rsa -in server.key.org -out server.key
- Sign the CSR and create the certificate:
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt cat server.crt server.key > certificate.pem
- Encrypting a file:
cat INFILE | openssl aes-256-ecb -salt -k PASSWORD > INFILE.ssl
- Decrypting a file:
cat INFILE.ssl | openssl aes-256-ecb -d -k PASSWORD > INFILE
2011.09.30
awk
- AWK Compatibility List – http://www.shelldorado.com/articles/awkcompat.html
- comp.lang.awk FAQ – http://www.faqs.org/faqs/computer-lang/awk/faq/
- Bruce Barnett’s Awk tutorial at “The Grymoire – home for UNIX wizards” – http://www.grymoire.com/Unix/Awk.html
- The GNU Awk User’s Guide – http://www.gnu.org/s/gawk/manual/gawk.html
- AWK info at WikiPedia – http://en.wikipedia.org/wiki/AWK
Passing shell variables to AWK
Thing that works well for me:
awk '{print "'"$VARIABLE"'"}' 1 > 2
|
- “Four Ways to Pass Shell Variables in AWK” by Chi Hung Chan – http://chihungchan.blogspot.com/2009/03/four-ways-to-pass-shell-variables-in.html
- Setting a BASH environment variable directly in AWK (in an AWK one-liner) – http://stackoverflow.com/questions/3107727/setting-a-bash-environment-variable-directly-in-awk-in-an-awk-one-liner
- Invoking AWK programs – http://www.shelldorado.com/goodcoding/awkinvoke.html
Related here: Scripting languages – https://eikonal.wordpress.com/2010/06/15/awk-sed/ | Unix tricks – https://eikonal.wordpress.com/2011/02/15/unix-tricks/ | SED tricks – https://eikonal.wordpress.com/2010/10/05/sed-tricks/ | Memory of things disappearing > nmap stuff > getports.awk – https://eikonal.wordpress.com/2010/06/23/memory-of-things-disappearing-nmap-stuff-getports-awk/
2011.02.25
Excel files processing
- “What’s the best way to parse Excel file in Perl?” – http://stackoverflow.com/questions/429193/whats-the-best-way-to-parse-excel-file-in-perl
- This discussion recommends using Spreadhsheet::ParseExcel.
- “Reading Native Excel Files in Perl” by Mike Diehl (Linux Journal; 2008.09.02) – http://www.linuxjournal.com/content/reading-native-excel-files-perl
- “How to read Excel 2007 XLSX format?” (PerlMonks; 2007.03.05) – http://www.perlmonks.org/?node_id=603281
Related here: Excel sortIP macro – https://eikonal.wordpress.com/2012/02/07/excel-sortip-macro/ | Excel to text – https://eikonal.wordpress.com/2011/02/14/excel-to-text/ | IT tips pages – https://eikonal.wordpress.com/2010/02/08/it-tips-pages/
2011.02.14
Excel to text
- excel2txt (by Ken Youens-Clark) – http://search.cpan.org/~kclark/excel2txt/excel2txt [Perl] – convert Excel data to delimited text files
- Example use:
> excel2txt PasswdFiles.xls Processing PasswdFiles.xls Writing 'passwdfiles-fiapp1.txt' Writing 'passwdfiles-fiapp2.txt' Writing 'passwdfiles-fiapp3.txt' Writing 'passwdfiles-fiapp4.txt' Writing 'passwdfiles-fiapp6.txt' Writing 'passwdfiles-fiapp7.txt' Writing 'passwdfiles-fiapp8.txt' Writing 'passwdfiles-fiapp9.txt' Writing 'passwdfiles-fidb1.txt' Writing 'passwdfiles-fidb2.txt' Writing 'passwdfiles-fidb3.txt' Writing 'passwdfiles-fidb4.txt' Writing 'passwdfiles-fiweb1.txt' Writing 'passwdfiles-fiweb2.txt' Writing 'passwdfiles-fiweb3.txt' Writing 'passwdfiles-fiweb4.txt' Done, processed 1 Excel file, created 16 data files.
Related here: Excel sortIP macro – https://eikonal.wordpress.com/2012/02/07/excel-sortip-macro/ | Excel files processing – https://eikonal.wordpress.com/2011/02/25/excel-files-processing/ | IT tips pages – https://eikonal.wordpress.com/2010/02/08/it-tips-pages/
2010.10.05
sed tricks
These one-liners are collected from various sites and articles on web – see the list of Sources at the bottom of this posting.
- Deleting all empty lines from the input file:
sed ‘/^$/d’
- In-place replacement:
sed –i ‘/^$/d’ INPUTFILE
- In-place replacement with backup of original file:
sed –ibak ‘/^$/d’ INPUTFILE
- In-place deletion of all occurences of a string in a file:
sed –i ‘/WORDTOBEDELETED/d’
- How to replace the first occurrence only (of a string match) in a file, using sed
sed '0,/THISSTRING/s//TOTHATSTRING/' INPUTFILE
- Append environment variable PATH with sed:
sed -e '/^PATH/s/"$/:\/usr\/lib\/myprog\/bin"/g' -i /etc/environment
- Remove all whitespace from beinning of lines:
sed 's/^[ \t]*//g' foo
- Deleting the / from all html files contained in current folder:
sed -i ‘s/src=”\//src=”/g’ *.html
- Greedy matching:
% echo "foobar" | sed 's///g' bar
- Non greedy matching:
% echo "foobar" | sed 's/]*>//g' foobar
Sources:
- How do you delete empty lines using ‘sed’? – http://ksearch.wordpress.com/2010/09/25/delete-empty-lines-using-sed/
- How to replace the first occurrence only (of a string match) in a file, using sed – http://techteam.wordpress.com/2010/09/14/how-to-replace-the-first-occurrence-only-of-a-string-match-in-a-file-using-sed/
- Append environment variable PATH with sed (2010.09.09) – http://kdguntu.wordpress.com/2010/09/09/append-path/
- Unix tip #3: Introduction to Find, Grep, Sed – http://developmentality.wordpress.com/2010/09/07/unix-tip-3-introduction-to-find-grep-sed/
- util: sed for text parsing – http://zosim26.wordpress.com/2010/09/01/util-sed-for-text-parsing/
- To delete the / after the src From HTML Files – http://somepalli.wordpress.com/2010/08/05/to-delete-the-word-after-the-src-from-html-files/
- “sed – non greedy matching” by Christoph Sieghart (2008.07.08) – http://0x2a.at/b/sed–non-greedy-matching
References
- UNIX man pages : sed – http://unixhelp.ed.ac.uk/CGI/man-cgi?sed
- sed – http://www.opengroup.org/onlinepubs/007908799/xcu/sed.html
- “Sed – An Introduction and Tutorial” by Bruce Barnett – http://www.grymoire.com/Unix/Sed.html
- man sed (1posix) – stream editor – http://pwet.fr/man/linux/commandes/posix/sed
- Get better at awk/sed/grep – http://kristianrumberg.wordpress.com/2010/09/01/get-better-at-awksedgrep/
Related here: Command line based text replace – https://eikonal.wordpress.com/2010/07/13/command-line-based-text-replace/.
Related here: Scripting languages – https://eikonal.wordpress.com/2010/06/15/awk-sed/ | Unix tricks – https://eikonal.wordpress.com/2011/02/15/unix-tricks/ | SED tricks – https://eikonal.wordpress.com/2010/10/05/sed-tricks/ | Memory of things disappearing > nmap stuff > getports.awk – https://eikonal.wordpress.com/2010/06/23/memory-of-things-disappearing-nmap-stuff-getports-awk/ | AWK – https://eikonal.wordpress.com/2011/09/30/awk/
2010.08.03
Powershell
- PowerTab by PowerShell Guy – http://thepowershellguy.com/blogs/posh/pages/powertab.aspx
- PowerTab for PowerShell v2.0 – http://powertab.codeplex.com/
- “Using PowerTab for NestedPrompt” (ITBloggen) – http://itbloggen.se/cs/blogs/bjrn_stermans_blog/archive/2007/08/04/582.aspx
- The PowerShell Guy blog – http://thepowershellguy.com/blogs/posh/
- Pash – open source reimplementation of Powershell – http://pash.sourceforge.net/ | http://sourceforge.net/projects/pash/
- http://www.boot-land.net/forums/index.php?showtopic=5420
- “Multiple ways to open PowerShell in the current Explorer window” (Blogging on Technology blog; 2008.10.14) – http://techblogging.wordpress.com/2008/10/14/multiple-ways-to-open-powershell-in-the-current-explorer-window/
- “Context sensitive auto-completion using PowerShell, PowerTab and GIT” (Blogging on Technology blog; 2008.10.13) – http://techblogging.wordpress.com/2008/10/13/context-sensitive-auto-completion-using-powershell-powertab-and-git/
- Powershell postings at ITBloggen blog – http://itbloggen.se/cs/blogs/bjrn_stermans_blog/archive/tags/PowerShell/default.aspx
- Use of Powershell in Nessus scripts:
- “Compliance Auditing with PowerShell” by Paul Asadoorian (Tenable blog; 2012.04.26) – http://blog.tenablesecurity.com/2012/04/compliance-auditing-with-microsoft-powershell.html
- “File Integrity Auditing with Nessus” by Paul Asadoorian (Tenable blog; 2012.05.18) – http://blog.tenablesecurity.com/2012/05/file-integrity-auditing-with-nessus.html
Portable Powershell:
- Portable PowerShell – Surveyhttp://blogs.msdn.com/b/powershell/archive/2009/07/31/portable-powershell-survey.aspx
- ShellTool’s Portable PowerShell – Description, Survey and Private Beta – http://karlprosser.com/coder/2009/07/21/shelltools-portable-powershell-description-survey-and-private-beta/
- http://shelltools.wik.is/Portable_PowerShell
2010.07.06
googlecl
A tool that instruments some of the Google services to the unix command line.
- Home/download – http://code.google.com/p/googlecl/
- Example scripts: http://code.google.com/p/googlecl/wiki/ExampleScripts
- GoogleCL Brings Google Services to the Command Line (Lifehacker; 2010.06.18) http://lifehacker.com/5567258/googlecl-brings-google-services-to-the-command-line
- “The Beginner Guide to Use GoogleCL” by Tavis J. Hampton (makeTechEasier; 2010.06.23) – http://maketecheasier.com/beginner-guide-googlecl/2010/06/23
Installation:
- 1) Download gdata-python-client library from http://code.google.com/p/gdata-python-client/downloads/list
- 2) Download googlecl from http://code.google.com/p/googlecl/downloads/list
- Unpack both files and install them as follows:
tar zxvf gdata-2.0.10.tar.gz cd gdata-2.0.10 python setup.py install cd .. tar zxvf googlecl-0.9.8.tar.gz cd googlecl-0.9.8 python setup.py install cd ..
Examples
Following list is taken verbatim from the project page (http://code.google.com/p/googlecl/wiki/ExampleScripts). Idea is to grow this list as I find further tricks with this toolkit. Here it goes::
- Blogger:
- google blogger post –tags “GoogleCL, awesome” –title “Test Post” “I’m posting from the command line”
- google blogger post blogpost.txt
- google blogger list title,url-site # List posts
- google blogger delete –title “Test Post”
- google delete –title “Silly post number [0-9]*” # Delete posts matching regex
- google tag –title “Dev post” –tags “Python, software” # label an existing post
- Calendar:
- google calendar add “Dinner party with George today at 6pm” # add event to calendar
- google calendar today # List events for today only.
- google calendar list –date 2010-06-01,2010-06-30 # List events.
- google calendar delete –title “Dinner party with George” # Delete an event.
- google calendar today list –cal .* | egrep ‘\[.*\]’ # List all calendars
- Contacts:
- google contacts add “J. Random Hacker, jrandom@example.com”
- google contacts list name,email –title “J. Random Hacker”
- google contacts delete –title “J. Random Hacker”
- Docs:
- google docs delete –title “Evidence”
- google docs list title,url-direct –delimiter “: ” # list docs
- google docs upload the_bobs.csv ~/work/docs_to_share/*
gdata-python-client >= 1.3.0 ONLY:
- google docs edit –title “Shopping list” –editor vim
- google docs get –title “Homework [0-9]*”
- Picasa:
- google picasa create –title “Vermont Test” –tags Vermont vermont.jpg
- google picasa get –title “Vermont Test” /path/to/download/folder
- google picasa list title,url-direct –query “A tag”
- google picasa post –title “Vermont Test” ~/old_photos/*.jpg # Add to an album
- google picasa tag –title “Vermont Test” –tags “places”
- google picasa delete –title “Vermont Test” # delete entire album
- Youtube:
- google youtube post –category Education –devtags GoogleCL killer_robots.avi
- google youtube delete –title “killer_robots.avi”
- google youtube list # list my videos
- google youtube tag -n “.*robot.*” –tags robot
2010.06.15
Scripting languages
Unix shells:
- “Sh – the Bourne Shell” by Bruce Barnett – http://www.grymoire.com/Unix/Sh.html
- “UNIX SHELL Quote Tutorial” by Bruce Barnett – http://www.grymoire.com/Unix/Quote.html
- “Bash Guide for Beginners” by Machtelt Garrels – http://tldp.org/LDP/Bash-Beginners-Guide/ | HTML: http://tldp.org/LDP/Bash-Beginners-Guide/html/
- Chi Hung Chan’s blog – “The Scripting Guy in the Lion City with a performance sense” – http://chihungchan.blogspot.com/
- Good Shell Coding Practices (at SHELLdorado – your UNIX shell scripting resource) – http://www.shelldorado.com/goodcoding/
Windows Scripting:
- Windows Scripting by Eric Phelps – http://www.ericphelps.com/scripting/index.htm
- Windows 95 / DOS 7 Batch Programming by Eric Phelps – http://www.ericphelps.com/batch/index.htm
Multi-language pages:
- Rob van der Woude’s Scripting Pages – http://www.robvanderwoude.com/
- Rosetta Stone for Scripting Languages – http://www.lurklurk.org/rosetta.html
Compiling shell scripts
Can not be done.
- “compile a shell script” (Unix.com > The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting) – http://www.unix.com/shell-programming-scripting/93541-compile-shell-script.html
- “Compiling Shell script” (Unix.com > The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting) – http://www.unix.com/shell-programming-scripting/119610-compiling-shell-script.html
- “Compiling Shell Scripts” (Unix.com > The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting) – http://www.unix.com/shell-programming-scripting/34893-compiling-shell-scripts.html
- “script to compile all libraries and forms” (Unix.com > The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting) – http://www.unix.com/shell-programming-scripting/88774-script-compile-all-libraries-forms.html
- “Compiling scripts written in Unix” (Unix.com > The UNIX and Linux Forums > Top Forums > Shell Programming and Scripting) – http://www.unix.com/shell-programming-scripting/32762-compiling-scripts-written-unix.html
- ShellGuard – Shell Script Compiler – http://www.fstha.com/sg.html
- SHC by Francisco Javier Rosales García – http://www.datsi.fi.upm.es/~frosal/ | man page – http://www.datsi.fi.upm.es/~frosal/sources/shc.html
Related here: Unix tricks – https://eikonal.wordpress.com/2011/02/15/unix-tricks/ | SED tricks – https://eikonal.wordpress.com/2010/10/05/sed-tricks/ | Memory of things disappearing > nmap stuff > getports.awk – https://eikonal.wordpress.com/2010/06/23/memory-of-things-disappearing-nmap-stuff-getports-awk/ | AWK – https://eikonal.wordpress.com/2011/09/30/awk/
2010.04.02
Regular expressions
Sites
- Regular Expressions specification – http://pubs.opengroup.org/onlinepubs/007908799/xbd/re.html
- at WikiPedia – http://en.wikipedia.org/wiki/Regular_expression
- Regular Expressions at Open Directory – http://www.dmoz.org/Computers/Programming/Languages/Regular_Expressions/
- Regular-Expressions.info site – http://www.regular-expressions.info/
- a table of Regular Expressions rules – http://www.3gwt.net/demo/regexps.html
- Regular expressions in Ruby – http://www.ruby-doc.org/docs/ProgrammingRuby/html/language.html#UJ; {Ruby}
- Regular Expressions Library – http://regexlib.com/
- JavaScript 5.6/VBScript Regular Expression Syntax – http://www.regextester.com/jssyntax.html; {VBScript}
- PCRE Regular Expression Pattern Syntax Refference (PHP preg*) – http://www.regextester.com/pregsyntax.html‘ {PHP}
- POSIX 1003.2 Regular Expression Pattern Syntax Refference (PHP ereg*) – http://www.regextester.com/eregsyntax.html; {PHP}
- java.util.regex – http://download.oracle.com/javase/1.5.0/docs/api/java/util/regex/Pattern.html; {Java}
- A Tao of Regular Expressions – http://www.cs.colorado.edu/~schenkc/UNIX_Regular_Expressions.pdf
- Steven Levithan’s blog “Flagrant Badassery” – A JavaScript and regular expression centric blog – http://blog.stevenlevithan.com/; {JavaScript}
- “Regex Gury” blog by Jan Goyvaerts – http://www.regexguru.com/
- Lesson: Regular Expressions (at Java Tuturials) – http://download.oracle.com/javase/tutorial/essential/regex/index.html; {Java}
- PerlRE module – http://perldoc.perl.org/perlre.html; {Perl}
- “Microsoft Beefs Up VBScript with Regular Expressions” – http://msdn.microsoft.com/en-us/library/ms974570.aspx; {VBScript}
- “.NET Framework Regular Expressions” – http://msdn.microsoft.com/en-us/library/hs600312.aspx; {.Net}
- Regular Expressions and Other Pattern Matching – http://billposer.org/Linguistics/Computation/Resources.html#patterns
- “Structural Regular Expressions” by Rob Pike – http://doc.cat-v.org/bell_labs/structural_regexps/
- “Regular Expressions” at MDN Dev Center – https://developer.mozilla.org/en/Core_JavaScript_1.5_Guide/Regular_Expressions; {JavaScript}
- “Regular Expression HOWTO” by A.M. Kuchling – http://www.amk.ca/python/howto/regex/
Tools
Standalone tools:
- RegexBuddy [COMMERCIAL] by Jan Goyvaerts of Just Great Software (http://www.just-great-software.com/): http://www.regexbuddy.com/ | Trial – http://www.regexbuddy.com/RegexBuddyCookbook.exe
- PowerGREP [COMMERCIAL] by Just Great Software (http://www.just-great-software.com/): http://www.powergrep.com/ | Demo/trial – http://download.jgsoft.com/powergrep/SetupPowerGREPDemo.exe
- RegexMagic [COMMERCIAL] by Just Great Software (http://www.just-great-software.com/): http://www.regexmagic.com/ | Demo/trial – http://download.jgsoft.com/magic/SetupRegexMagicDemo.exe
- JavaScript Regex Syntax Highlighter by Steven Levithan – http://stevenlevithan.com/regex/syntaxhighlighter/
- XRegexp, a JavaScript library by Steven Levithan – http://xregexp.com/
- Expresso (at UltraPico) – http://www.ultrapico.com/Expresso.htm
- Wingrep [COMMERCIAL] – http://wingrep.com/
- RegexRenamer – http://regexrenamer.sourceforge.net/
- RegexRenamer is a powerful but simple user-friendly graphical tool used to batch rename files using regular expressions. A regular expression (or regex) is simply text that contains special characters that together defines a pattern that can be used to match text, in this case filenames. Using the power of regexes it becomes easy to apply complex transformations to large groups of files that otherwise would not be possible with plain match & replace.
Online testers:
- RegexPal by Steven Levithan – http://regexpal.com/ — a JavaScript regular expression tester.
- XRegExp by Steven Levithan – http://blog.stevenlevithan.com/archives/xregexp-1-0
- Regular expression tool – http://regex.larsolavtorvik.com/
- NRegex – http://www.nregex.com/nregex/default.aspx
- NRegex bookmarklet – Drag this to your browser’s Bookmarks Toolbar
javascript:var%20r%20=%20window.prompt('Enter%20regular%20expression'); location.href='http://www.nregex.com/nregex/default.aspx?regex='%20+%20encodeURIComponent(r);
- NRegex bookmarklet – Drag this to your browser’s Bookmarks Toolbar
- Rubular – a Ruby regular expression editor – http://www.rubular.com/
- Regexp Editor – Java applet by Serbei Evdokimov – http://www.myregexp.com/ | same with a signed JAR – http://www.myregexp.com/signedJar.html | Source code (“Regex Util”) at Sourceforge – http://sourceforge.net/projects/regex-util/develop
- “My Regex Tester” – http://www.myregextester.com/
- REGex TESTER (ver. 1.5.3) by Venimus – http://www.regextester.com/
- Regex Tester 2.0 alpha – http://www.regextester.com/index2.html
- Regular Expression Test Page by FileFormat.Info – http://www.fileformat.info/tool/regex.htm
- Oscar Steele’s reAnimator – http://osteele.com/tools/reanimator/
- Visualizing Regular Expressions – http://osteele.com/archives/2006/02/reanimator
Books
- “Regular Expressions Cookbook” by Jan Goyvaerts & Steven Levithan (O’Reilly; 2009.05; ISBN-10: 9780596520687; ISBN-13: 978-0596520687) – http://www.amazon.com/dp/0596520689/
- Book page at O’Reilly – http://oreilly.com/catalog/9780596520694
- Book’s home page – http://www.regular-expressions-cookbook.com/
- “Regular Expressions for Regular Programmers” (book review; Coding Horror; 2009.06.08) – http://www.codinghorror.com/blog/2009/06/regular-expressions-for-regular-programmers.html
- “Mastering Regular Expressions” by Jeffrey E.F. Friedl (O’Reilly; 2006.08.15; ISBN-10: 9780596528126; ISBN-13: 978-0596528126) – http://www.amazon.com/Mastering-Regular-Expressions-Jeffrey-Friedl/dp/0596528124/ | home at O’Reilly – http://oreilly.com/catalog/9781565922570/
- “Regular Expression Pocket Reference: Regular Expressions for Perl, Ruby, PHP, Python, C, Java and .NET (Pocket Reference)” by Tony Stubblebine (O’Reilly; 2007.07.25; ISBN-10: 9780596514273; ISBN-13: 978-0596514273) – http://www.amazon.com/Regular-Expression-Pocket-Reference-Expressions/dp/0596514271/
- “Sams Teach Yourself Regular Expressions in 10 Minutes” by Ben Forta (Sams; 2004.03.05; ISBN-10: 0672325667; ISBN-13: 978-0672325663) – http://www.amazon.com/Teach-Yourself-Regular-Expressions-Minutes/dp/0672325667/
Tidbits
Sources: The above links.
- [abc] – A single character: a, b or c
- [^abc] – Any single character but a, b, or c
- [a-z] – Any single character in the range a-z
- [a-zA-Z] – Any single character in the range a-z or A-Z
- ^ – Start of line
- $ – End of line
- \A – Start of string
- \z – End of string
- . – Any single character
- \s – Any whitespace character
- \S – Any non-whitespace character
- \d – Any digit
- \D – Any non-digit
- \w – Any word character (letter, number, underscore)
- \W – Any non-word character
- \b – Any word boundary character
- (…) – Capture everything enclosed
- (a|b) – a or b
- a? – Zero or one of a
- a* – Zero or more of a
- a+ – One or more of a
- a{3} – Exactly 3 of a
- a{3,} – 3 or more of a
- a{3,6} – Between 3 and 6 of a
- ^\s[ \t]*$ – Match a blank line
- \d{2}-\d{5} – Validate an ID number consisting of 2 digits, a hyphen, and another 5 digits
Special common strings:
- Personal Name: ^[\w\.\’]{2,}([\s][\w\.\’]{2,})+$
- Username: ^[\w\d\_\.]{4,}$
- Password at least 6 symbols: ^.{6,}$
- Password or empty input: ^.{6,}$|^$
- email: ^[\_]*([a-z0-9]+(\.|\_*)?)+@([a-z][a-z0-9\-]+(\.|\-*\.))+[a-z]{2,6}$
- Email address: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b[A-z0-9_.%+-]+@[A-z0-9_.%+-]+\.[A-z]{2,4}
- US phone: \W?\d{3}\W?\d{3}\W?\d{4}
- US Phone number: ^\+?[\d\s]{3,}$
- US Phone with code: ^\+?[\d\s]+\(?[\d\s]{10,}$
- URL: \W?\d{3}\W?\d{3}\W?\d{4}\b\w+://(\w|-|\.|/)+(/|\b)
- US Social Security Number (SSN): \d{3}-\d{2}-\d{4}
- US ZIP: \d{5}(-\d{4})?
- IP (v4) address: \b\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\b
- IP (v4) address: \b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
- IP (v4) address: ^(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]){3}$
- IP (v4) address: \b(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
- IP (v4) address: \b(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\b
- IP (v6) address:
- MAC address: ^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$
- Positive Integers: ^\d+$
- Negative Integers: ^-\d+$
- Integer: ^-{0,1}\d+$
- Positive Number: ^\d*\.{0,1}\d+$
- Negative Number: ^-\d*\.{0,1}\d+$
- Positive Number or Negative Number: ^-{0,1}\d*\.{0,1}\d+$
- Floating point number: [-+]?([0-9]*\.[0-9]+|[0-9]+)
- Floating point number: [-+]?(?:\b[0-9]+(?:\.[0-9]*)?|\.[0-9]+\b)(?:[eE][-+]?[0-9]+\b)?
- Roman number: ^(?i:(?=[MDCLXVI])((M{0,3})((C[DM])|(D?C{0,3}))?((X[LC])|(L?XX{0,2})|L)?((I[VX])|(V?(II{0,2}))|V)?))$
- Domain Name: ^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}$
- Domain Name: ^([a-z][a-z0-9\-]+(\.|\-*\.))+[a-z]{2,6}$
- Windows File Name: (?i)^(?!^(PRN|AUX|CLOCK\$|NUL|CON|COM\d|LPT\d|\..*)(\..+)?$)[^\\\./:\*\?\”\|][^\\/:\*\?\”\|]{0,254}$
- Date in format yyyy-MM-dd: (19|20)\d\d([- /.])(0[1-9]|1[012])\2(0[1-9]|[12][0-9]|3[01])
- Date (dd mm yyyy, d/m/yyyy, etc.): ^([1-9]|0[1-9]|[12][0-9]|3[01])\D([1-9]|0[1-9]|1[012])\D(19[0-9][0-9]|20[0-9][0-9])$
- Year 1900-2099: ^(19|20)[\d]{2,2}$
Related (here at this blog):
Command line based text replace – https://eikonal.wordpress.com/2010/07/13/command-line-based-text-replace/ |
Perl online – https://eikonal.wordpress.com/2010/02/15/perl-online/