summaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorHarel Ben-Attia <harelba@gmail.com>2014-05-20 04:41:37 -0400
committerHarel Ben-Attia <harelba@gmail.com>2014-05-20 04:41:37 -0400
commit11092ce2f3febce037dcea852ca5acc18ea7201f (patch)
tree1a2d65d515d101603effe876b9e26831fb7674ed /examples
parent586d3cd0c4b18b9d05809440b3ca3c07a28beb6a (diff)
Refactored folder structure
Diffstat (limited to 'examples')
-rw-r--r--examples/EXAMPLES.markdown74
-rw-r--r--examples/exampledatafile248
-rw-r--r--examples/group-emails-example12
3 files changed, 334 insertions, 0 deletions
diff --git a/examples/EXAMPLES.markdown b/examples/EXAMPLES.markdown
new file mode 100644
index 0000000..b9c9152
--- /dev/null
+++ b/examples/EXAMPLES.markdown
@@ -0,0 +1,74 @@
+# q - Treating Text as a Database
+
+__Command 1 (Join data from two files):__
+
+The following command _joins_ an ls output (`exampledatafile`) and a file containing rows of **group-name,email** (`group-emails-example`) and provides a row of **filename,email** for each of the emails of the group. For brevity of output, there is also a filter for a specific filename called `ppp` which is achieved using a WHERE clause.
+```bash
+q "select myfiles.c8,emails.c2 from exampledatafile myfiles join group-emails-example emails on (myfiles.c4 = emails.c1) where myfiles.c8 = 'ppp'"
+```
+
+__Output 1: (rows of filename,email):__
+```bash
+ppp dip.1@otherdomain.com
+ppp dip.2@otherdomain.com
+```
+
+You can see that the ppp filename appears twice, each time matched to one of the emails of the group `dip` to which it belongs. Take a look at the files [`exampledatafile`](exampledatafile) and [`group-emails-example`](group-emails-example) for the data.
+
+## Tutorial
+Let's postpone the official usage (See below). Look at the examples, and you'll get the general idea.
+
+1. We'll start with a simple example and work from there. The file `exampledatafile` contains the output of an `ls -l` command, a list of files in some directory. In this example we'll do some calculations on this file list.
+ * The following commands will count the lines in the file *exampledatafile*, effectively getting the number of files in the directory. The output will be exactly as if we ran the `wc -l` command.
+
+ q "SELECT COUNT(1) FROM exampledatafile"
+
+ cat exampledatafile | q "SELECT COUNT(1) FROM -"
+
+ * Now, let's assume we want to know the number of files per date in the directory. Notice that the date is in column 6.
+
+ q "SELECT c6,COUNT(1) FROM exampledatafile GROUP BY c6"
+
+ * The results will show the number of files per date. However, there's a lot of "noise" - dates in which there is only one file. Let's leave only the ones which have 3 files or more:
+
+ q "SELECT c6,COUNT(1) AS cnt FROM exampledatafile GROUP BY c6 HAVING cnt >= 3"
+
+ * Now, let's see if we can get something more interesting. The following command will provide the **total size** of the files for each date. Notice that the file size is in c5.
+
+ q "SELECT c6,SUM(c5) AS size FROM exampledatafile GROUP BY c6"
+
+ * We can see the results. However, the sums are in bytes. Let's show the same results but in KB:
+
+ q "SELECT c6,SUM(c5)/1024.0 AS size FROM exampledatafile GROUP BY c6"
+
+ * The last command provided us with a list of results, but there is no order and the list is too long. Let's get the Top 5 dates:
+
+ q "SELECT c6,SUM(c5)/1024.0 AS size FROM exampledatafile GROUP BY c6 ORDER BY size DESC LIMIT 5"
+
+ * Now we'll see how we can format the output itself, so it looks better:
+
+ q -f "2=%4.2f" "SELECT c6,SUM(c5)/1024.0 AS size FROM exampledatafile GROUP BY c6 ORDER BY size DESC LIMIT 5"
+
+ * (An example of using JOIN will be added here - In the mean time just remember you have to use table alias for JOINed "tables")
+
+2. A more complicated example, showing time manipulation. Let's assume that we have a file with a timestamp as its first column. We'll show how it's possible to get the number of rows per full minute:
+
+ q "SELECT DATETIME(ROUND(c1/60000)*60000/1000,'unixepoch','-05:00') as min, COUNT(1) FROM datafile*.gz GROUP BY min"
+
+ There are several things to notice here:
+
+ * The timestamp value is in the first column, hence c1.
+ * The timestamp is assumed to be a unix epoch timestamp, but in ms, and DATETIME accepts seconds, so we need to divide by 1000
+ * The full-minute rounding is done by dividing by 60000 (ms), rounding and then multiplying by the same amount. Rounding to an hour, for example, would be the same except for having 3600000 instead of 60000.
+ * We use DATETIME's capability in order to output the time in localtime format. In that case, it's converted to New York time (hence the -5 hours)
+ * The filename is actually all files matching "datafile*.gz" - Multiple files can be read, and since they have a .gz extension, they are decompressed on the fly.
+ * **NOTE:** For non-SQL people, the date manipulation may seem odd at first, but this is standard SQL processing for timestamps and it's easy to get used to.
+
+## Installation
+Installation instructions can be found [here](INSTALL.markdown)
+
+## Contact
+Any feedback/suggestions/complaints regarding this tool would be much appreciated. Contributions are most welcome as well, of course.
+
+Harel Ben-Attia, harelba@gmail.com, [@harelba](https://twitter.com/harelba) on Twitter
+
diff --git a/examples/exampledatafile b/examples/exampledatafile
new file mode 100644
index 0000000..6a25351
--- /dev/null
+++ b/examples/exampledatafile
@@ -0,0 +1,248 @@
+-rw-r--r-- 1 root root 2064 2006-11-23 21:33 netscsid.conf
+-rw-r--r-- 1 root root 1343 2007-01-09 20:39 wodim.conf
+-rw-r--r-- 1 root root 112 2007-06-22 18:08 apg.conf
+-rw-r--r-- 1 root root 15752 2009-07-25 18:13 ltrace.conf
+-rw-r--r-- 1 root root 624 2010-05-16 14:18 mtools.conf
+-rw-r--r-- 1 root root 395 2010-06-20 11:11 anacrontab
+-rw-r--r-- 1 root root 18673 2010-10-18 06:49 globash.rc
+-rw-r--r-- 1 root root 23958 2010-11-15 10:07 mime.types
+-rw-r--r-- 1 root root 449 2010-11-15 10:07 mailcap.order
+-rw-r--r-- 1 root root 8453 2010-12-03 22:32 nanorc
+-rwxr-xr-x 1 root root 268 2010-12-07 12:10 rmt
+-rw-r--r-- 1 root root 1147 2011-01-04 16:27 rarfiles.lst
+-rw-r--r-- 1 root root 600 2011-03-09 13:22 deluser.conf
+drwxr-xr-x 2 root root 4096 2011-03-15 23:05 ODBCDataSources
+-rw-r--r-- 1 root root 0 2011-03-15 23:05 odbc.ini
+-rw-r--r-- 1 root root 801 2011-03-17 20:09 mke2fs.conf
+drwxr-xr-x 2 root root 4096 2011-04-30 19:12 insserv.conf.d
+-rw-r--r-- 1 root root 839 2011-04-30 19:12 insserv.conf
+drwxr-xr-x 3 root root 4096 2011-04-30 19:12 insserv
+-rw-r--r-- 1 root root 373 2011-05-01 02:15 rearj.cfg
+-rw-r--r-- 1 root root 1260 2011-05-02 15:19 ucf.conf
+-rw-r----- 1 root daemon 144 2011-05-16 13:32 at.deny
+-rw-r--r-- 1 root root 4496 2011-05-17 23:21 wgetrc
+drwxr-xr-x 2 root root 4096 2011-05-18 12:01 libpaper.d
+-rw-r--r-- 1 root root 1975 2011-05-18 13:00 bash.bashrc
+-rw-r----- 1 root fuse 216 2011-05-18 13:12 fuse.conf
+-rw-r--r-- 1 root root 19666 2011-05-24 18:26 services
+-rw-r--r-- 1 root root 887 2011-05-24 18:26 rpc
+-rw-r--r-- 1 root root 2859 2011-05-24 18:26 protocols
+-rw-r--r-- 1 root root 4728 2011-06-07 14:10 hdparm.conf
+-rw-r--r-- 1 root root 2083 2011-06-10 19:58 sysctl.conf
+-rw-r--r-- 1 root root 2290 2011-06-14 18:51 libuser.conf
+-rw-r--r-- 1 root root 1195 2011-06-17 20:13 rsyslog.conf
+-rw-r--r-- 1 root root 2570 2011-06-22 13:39 locale.alias
+-rw-r--r-- 1 root root 2969 2011-06-23 10:01 debconf.conf
+-rw-r--r-- 1 root root 3828 2011-06-24 12:28 securetty
+-rw-r--r-- 1 root root 10551 2011-06-24 12:28 login.defs
+-rw-r--r-- 1 root root 91 2011-07-08 20:13 networks
+-rw-r--r-- 1 root root 267 2011-07-08 20:13 legal
+-rw-r--r-- 1 root root 92 2011-07-08 20:13 host.conf
+-rw-r--r-- 1 root root 11 2011-07-08 20:13 debian_version
+-rw-r--r-- 1 root root 10183 2011-07-18 23:45 sensors3.conf
+-rw-r--r-- 1 root root 3587 2011-07-27 14:14 lftp.conf
+-rw-r--r-- 1 root root 5173 2011-07-27 14:32 manpath.config
+-rw-r--r-- 1 root root 645 2011-07-27 14:36 ts.conf
+-rw-r--r-- 1 root root 1586 2011-07-27 14:57 request-key.conf
+-rw-r--r-- 1 root root 111 2011-08-08 23:52 magic.mime
+-rw-r--r-- 1 root root 111 2011-08-08 23:52 magic
+-rw-r--r-- 1 root root 321 2011-08-09 19:16 blkid.conf
+drwxr-xr-x 2 root root 4096 2011-08-09 19:19 usb_modeswitch.d
+-rw-r--r-- 1 root root 3279 2011-08-11 15:59 lsb-base-logging.sh
+-rw-r--r-- 1 root root 326 2011-08-17 16:15 updatedb.conf
+-rw-r--r-- 1 root root 552 2011-08-19 04:05 pam.conf
+-rw-r--r-- 1 root root 652 2011-08-25 16:14 zsh_command_not_found
+-rw-r--r-- 1 root root 592 2011-08-26 11:58 usb_modeswitch.conf
+-rw-r--r-- 1 root root 1721 2011-09-01 19:49 inputrc
+-r--r----- 1 root root 574 2011-09-11 22:09 sudoers
+drwxr-xr-x 2 root root 4096 2011-09-19 12:51 lsb-base
+-rw-r--r-- 1 root root 724 2011-09-20 03:04 crontab
+-rw-r--r-- 1 root root 643 2011-09-20 08:04 colord.conf
+-rw-r--r-- 1 root root 599 2011-10-04 18:19 logrotate.conf
+-rw-r--r-- 1 root root 344 2011-10-04 21:56 bindresvport.blacklist
+-rw-r--r-- 1 root root 3343 2011-10-04 21:56 gai.conf
+-rw-r--r-- 1 root root 58753 2011-10-04 22:53 bash_completion
+drwxr-xr-x 2 root root 4096 2011-10-05 22:05 update-notifier
+-rw-r--r-- 1 root root 100 2011-10-08 01:45 lsb-release
+-rw-r--r-- 1 root root 13 2011-10-09 09:31 issue.net
+-rw-r--r-- 1 root root 20 2011-10-09 09:31 issue
+-rw-r--r-- 1 root root 1309 2011-10-09 09:41 kerneloops.conf
+drwxr-xr-x 2 root root 4096 2011-10-12 16:26 opt
+-rw-r--r-- 1 root root 34 2011-10-12 16:26 ld.so.conf
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 terminfo
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 python2.7
+-rw-r--r-- 1 root root 547 2011-10-12 16:27 profile
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 iproute2
+-rw-r--r-- 1 root root 79 2011-10-12 16:27 environment
+-rw-r--r-- 1 root root 165 2011-10-12 16:27 shells
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 depmod.d
+-rw-r--r-- 1 root root 2981 2011-10-12 16:27 adduser.conf
+drwxr-xr-x 3 root root 4096 2011-10-12 16:27 udev
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 sysctl.d
+-rwxr-xr-x 1 root root 306 2011-10-12 16:27 rc.local
+drwxr-xr-x 6 root root 4096 2011-10-12 16:27 network
+drwxr-xr-x 5 root root 4096 2011-10-12 16:27 initramfs-tools
+drwxr-xr-x 3 root root 4096 2011-10-12 16:27 systemd
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 sudoers.d
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 vim
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 newt
+drwxr-xr-x 4 root root 4096 2011-10-12 16:27 dhcp
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 cron.hourly
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 python
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 kbd
+drwxr-xr-x 2 root root 4096 2011-10-12 16:27 console-setup
+drwxr-xr-x 3 root root 4096 2011-10-12 16:28 ca-certificates
+drwxr-xr-x 4 root root 4096 2011-10-12 16:28 perl
+drwxr-xr-x 3 root root 4096 2011-10-12 16:28 pkcs11
+drwxr-xr-x 5 root root 4096 2011-10-12 16:28 pm
+drwxr-xr-x 6 root root 4096 2011-10-12 16:28 gconf
+drwxr-xr-x 6 root root 4096 2011-10-12 16:28 apm
+drwxr-xr-x 5 root root 4096 2011-10-12 16:28 polkit-1
+drwxr-xr-x 3 root root 4096 2011-10-12 16:28 emacs
+drwxr-xr-x 5 root root 4096 2011-10-12 16:28 ConsoleKit
+drwxr-xr-x 4 root root 4096 2011-10-12 16:28 ghostscript
+drwxr-xr-x 3 root root 4096 2011-10-12 16:28 doc-base
+drwxr-xr-x 3 root root 4096 2011-10-12 16:28 gnome-settings-daemon
+drwxr-xr-x 3 root root 4096 2011-10-12 16:28 etc
+drwxr-xr-x 3 root root 4096 2011-10-12 16:28 sound
+drwxr-xr-x 3 root root 4096 2011-10-12 16:29 gnome-vfs-2.0
+drwxr-xr-x 3 root root 4096 2011-10-12 16:29 ifplugd
+drwxr-xr-x 3 root root 4096 2011-10-12 16:29 dhcp3
+drwxr-xr-x 4 root root 4096 2011-10-12 16:29 fonts
+drwxr-xr-x 4 root root 4096 2011-10-12 16:29 ssl
+-rw-r--r-- 1 root root 7014 2011-10-12 16:29 ca-certificates.conf
+drwxr-xr-x 3 root root 4096 2011-10-12 16:29 foomatic
+drwxr-xr-x 2 root root 4096 2011-10-12 16:29 gtk-3.0
+-rw-r--r-- 1 root root 880 2011-10-12 16:29 hosts.deny
+-rw-r--r-- 1 root root 580 2011-10-12 16:29 hosts.allow
+drwxr-xr-x 2 root root 4096 2011-10-12 16:29 sensors.d
+drwxr-xr-x 4 root root 4096 2011-10-12 16:29 dbus-1
+drwxr-xr-x 2 root root 4096 2011-10-12 16:29 groff
+drwxr-xr-x 2 root root 4096 2011-10-12 16:29 calendar
+drwxr-xr-x 4 root root 4096 2011-10-12 16:29 security
+drwxr-xr-x 3 root root 4096 2011-10-12 16:29 apparmor
+drwxr-xr-x 2 root root 4096 2011-10-12 16:29 profile.d
+drwxr-xr-x 2 root root 4096 2011-10-12 16:29 grub.d
+drwxr-s--- 2 root dip 4096 2011-10-12 16:29 chatscripts
+drwxr-xr-x 3 root root 4096 2011-10-12 16:29 update-manager
+drwxr-xr-x 3 root root 4096 2011-10-12 16:29 ufw
+drwxr-xr-x 2 root root 4096 2011-10-12 16:29 rsyslog.d
+drwxr-xr-x 3 root root 4096 2011-10-12 16:30 acpi
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 gnome-app-install
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 cron.monthly
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 cron.d
+drwxr-xr-x 5 root root 4096 2011-10-12 16:30 apport
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 cron.weekly
+drwxr-xr-x 3 root root 4096 2011-10-12 16:30 avahi
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 at-spi2
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 bluetooth
+drwxr-xr-x 3 root root 4096 2011-10-12 16:30 sgml
+drwxr-xr-x 4 root root 4096 2011-10-12 16:30 defoma
+drwxr-xr-x 3 root root 4096 2011-10-12 16:30 compizconfig
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 checkbox.d
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 skel
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 gdb
+drwxr-xr-x 3 root root 4096 2011-10-12 16:30 firefox
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 obex-data-server
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 UPower
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 snmp
+-rw-r--r-- 1 root root 513 2011-10-12 16:30 nsswitch.conf
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 wpa_supplicant
+drwxr-xr-x 8 root dip 4096 2011-10-12 16:30 ppp
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 pcmcia
+drwxr-xr-x 5 root root 4096 2011-10-12 16:30 NetworkManager
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 cupshelpers
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 xml
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 thunderbird
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 update-motd.d
+drwxr-xr-x 4 root root 4096 2011-10-12 16:30 speech-dispatcher
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 ginn
+drwxr-xr-x 2 root root 12288 2011-10-12 16:30 brltty
+-rw-r--r-- 1 root root 33 2011-10-12 16:30 brlapi.key
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 gamin
+-rw-r--r-- 1 root root 7649 2011-10-12 16:30 pnm2ppa.conf
+drwxr-xr-x 2 root root 4096 2011-10-12 16:30 hp
+drwxr-xr-x 4 root root 4096 2011-10-12 16:30 mono
+drwxr-xr-x 2 root root 4096 2011-10-12 16:31 xul-ext
+drwxr-xr-x 3 root root 4096 2011-10-12 16:31 sane.d
+-rw-r--r-- 1 root root 54 2011-10-12 16:31 crypttab
+-rw-r--r-- 1 root root 227 2011-12-18 11:43 hosts
+-rw-r--r-- 1 root root 13 2011-12-18 11:43 hostname
+-rw-r--r-- 1 root root 10 2011-12-18 11:45 adjtime
+drwxr-xr-x 2 root root 4096 2011-12-18 11:51 libreoffice
+drwxr-xr-x 2 root root 4096 2011-12-18 11:52 dictionaries-common
+-rw-r--r-- 1 root root 350 2011-12-18 11:52 popularity-contest.conf
+-rw-r--r-- 1 root root 7 2011-12-18 11:52 papersize
+-rw-r--r-- 1 root root 91 2011-12-18 11:52 kernel-img.conf
+-rw-r--r-- 1 root root 15 2011-12-18 12:02 timezone
+-rw-r--r-- 1 root root 2197 2011-12-18 12:02 localtime
+drwxr-xr-x 2 root root 4096 2011-12-18 12:04 ldap
+drwxr-xr-x 2 root root 4096 2011-12-18 12:04 pulse
+drwxr-xr-x 2 root root 4096 2011-12-18 12:04 timidity
+drwxr-xr-x 2 root root 4096 2011-12-18 12:04 wildmidi
+drwxr-xr-x 2 root root 4096 2011-12-18 12:04 gtk-2.0
+drwxr-xr-x 5 root root 4096 2011-12-18 12:05 java-6-openjdk
+drwxr-xr-x 2 root root 4096 2011-12-18 12:05 icedtea-web
+drwxr-xr-x 6 root root 4096 2011-12-18 12:08 kernel
+drwxr-xr-x 3 root root 4096 2011-12-18 12:09 OpenCL
+drwxr-xr-x 3 root root 4096 2011-12-18 12:09 dkms
+drwxr-xr-x 2 root root 4096 2011-12-18 12:09 modprobe.d
+-rw------- 1 root harel 0 2011-12-18 13:21 mtab.fuselock
+drwxr-xr-x 2 root root 4096 2011-12-18 13:30 gnome
+drwxr-xr-x 4 root root 4096 2011-12-18 14:44 java-6-sun
+drwxr-xr-x 2 root root 4096 2011-12-18 15:06 subversion
+drwxr-xr-x 2 root root 4096 2011-12-18 15:37 bonobo-activation
+drwxr-xr-x 2 root root 4096 2011-12-19 10:13 purple
+drwxr-xr-x 2 root root 4096 2011-12-19 14:27 lightdm
+drwxr-xr-x 2 root root 4096 2011-12-19 22:49 ld.so.conf.d
+drwxr-xr-x 5 root root 4096 2011-12-19 22:50 xdg
+drwxr-xr-x 6 root root 4096 2011-12-19 23:19 resolvconf
+drwxr-xr-x 2 root root 4096 2011-12-19 23:19 rcS.d
+drwxr-xr-x 2 root root 4096 2011-12-22 18:57 ssh
+drwxr-xr-x 2 root root 4096 2011-12-23 12:05 qt3
+drwxr-xr-x 2 root root 4096 2011-12-23 16:09 openvpn
+drwxr-xr-x 4 root root 4096 2011-12-23 17:02 vlc
+drwxr-xr-x 4 root root 4096 2011-12-23 17:17 dconf
+drwxr-xr-x 6 root root 4096 2011-12-23 17:17 gdm
+drwxr-xr-x 3 root root 4096 2011-12-24 18:47 samba
+drwxr-xr-x 2 root root 4096 2011-12-25 10:39 gtags
+drwxr-xr-x 2 root root 4096 2012-01-03 16:01 cron.daily
+drwxr-xr-x 7 root root 4096 2012-01-03 16:01 apache2
+-rw-r--r-- 1 root root 664 2012-01-06 11:11 fstab.bak
+-rw-r--r-- 1 root root 211 2012-01-10 09:40 modules
+-rw------- 1 root root 789 2012-01-11 17:49 gshadow-
+-rw------- 1 root root 951 2012-01-11 17:49 group-
+-rw------- 1 root root 1343 2012-01-11 17:49 shadow-
+-rw------- 1 root root 1863 2012-01-11 17:49 passwd-
+-rw-r----- 1 root shadow 1343 2012-01-11 17:49 shadow
+-rw-r--r-- 1 root root 1878 2012-01-11 17:49 passwd
+drwxr-xr-x 5 root root 4096 2012-01-11 17:49 logcheck
+drwxr-xr-x 8 root root 4096 2012-01-11 17:49 apparmor.d
+drwxr-xr-x 2 root root 4096 2012-01-11 17:49 init
+drwxr-xr-x 3 root root 4096 2012-01-11 17:49 mysql
+drwxr-xr-x 4 root root 4096 2012-01-13 12:47 dpkg
+drwxr-xr-x 3 root root 4096 2012-01-13 12:47 bash_completion.d
+drwxr-xr-x 2 root root 4096 2012-01-13 12:48 R
+drwxr-xr-x 10 root root 4096 2012-01-16 16:08 X11
+drwxr-xr-x 2 root root 12288 2012-01-21 19:44 alternatives
+-rw-r--r-- 1 root root 773 2012-01-22 14:03 fstab
+drwxr-xr-x 3 root root 4096 2012-01-27 10:53 java
+drwxr-xr-x 3 root root 4096 2012-01-28 17:24 gimp
+drwxr-xr-x 6 root root 4096 2012-01-28 17:27 apt
+-rw-r--r-- 1 root root 23432 2012-01-28 17:35 mailcap
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 logrotate.d
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 default
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 init.d
+-rw-r--r-- 1 root root 972 2012-01-28 17:35 group
+-rw-r----- 1 root shadow 807 2012-01-28 17:35 gshadow
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 pam.d
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 rc6.d
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 rc5.d
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 rc4.d
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 rc3.d
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 rc2.d
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 rc1.d
+drwxr-xr-x 2 root root 4096 2012-01-28 17:35 rc0.d
+-rw-r--r-- 1 root root 136548 2012-01-28 17:35 ld.so.cache
+-rw-r--r-- 1 root root 697 2012-01-31 00:40 mtab
+drwxr-xr-x 4 root lp 4096 2012-01-31 00:48 cups
diff --git a/examples/group-emails-example b/examples/group-emails-example
new file mode 100644
index 0000000..e212651
--- /dev/null
+++ b/examples/group-emails-example
@@ -0,0 +1,12 @@
+root root.1@mydomain.com
+harel harel.1@mydomain.com
+root root.2@mydomain.com
+root root.3@mydomain.com
+daemon daemon.1@otherdomain.com
+dip dip.1@otherdomain.com
+dip dip.2@otherdomain.com
+fuse fuse.A@mydomain.com
+fuse fuse.B@mydomain.com
+fuse fuse.C@mydomain.com
+lpa lpa.1@mydomain.com
+shadow forsaken.1@mydomain.com