oafp to parse Unix files

List of examples of use of oafp to parse unix files:

Converting the Unix’s syslog into a json output

cat syslog | oafp in=raw path="split(trim(@),'\n').map(&split(@, ' ').{ date: concat([0],concat(' ',[1])), time: [2], host: [3], process: [4], message: join(' ',[5:]) }, [])"

Converting /etc/os-release to SQL insert statements

oafp cmd="cat /etc/os-release" in=ini outkey=release path="[@]" sql="select '$HOSTNAME' \"HOST\", *" out=sql sqlnocreate=true

Parses the /etc/passwd to a table order by uid and gid

oafp cmd="cat /etc/passwd" in=csv inputcsv="(withHeader: false, withDelimiter: ':')" path="[].{user:f0,pass:f1,uid:to_number(f2),gid:to_number(f3),description:f4,home:f5,shell:f6}" sql="select * order by uid,gid" out=ctable

or

oafp cmd="cat /etc/passwd" in=csv inputcsv="(withHeader: false, withDelimiter: ':')" path="[].{user:f0,pass:f1,uid:to_number(f2),gid:to_number(f3),description:f4,home:f5,shell:f6}" out=json | oafp from="notStarts(user, '#').sort(uid, gid)" out=ctable

Result:

  user  │pass│ uid │ gid │           description            │     home      │      shell      
────────┼────┼─────┼─────┼──────────────────────────────────┼───────────────┼─────────────────
root    │x   │0    │0    │root                              │/root          │/bin/bash        
daemon  │x   │1    │1    │daemon                            │/usr/sbin      │/usr/sbin/nologin
bin     │x   │2    │2    │bin                               │/bin           │/usr/sbin/nologin
sys     │x   │3    │3    │sys                               │/dev           │/usr/sbin/nologin
sync    │x   │4    │65534│sync                              │/bin           │/bin/sync        
games   │x   │5    │60   │games                             │/usr/games     │/usr/sbin/nologin
man     │x   │6    │12   │man                               │/var/cache/man │/usr/sbin/nologin
lp      │x   │7    │7    │lp                                │/var/spool/lpd │/usr/sbin/nologin
mail    │x   │8    │8    │mail                              │/var/mail      │/usr/sbin/nologin
news    │x   │9    │9    │news                              │/var/spool/news│/usr/sbin/nologin
uucp    │x   │10   │10   │uucp                              │/var/spool/uucp│/usr/sbin/nologin
proxy   │x   │13   │13   │proxy                             │/bin           │/usr/sbin/nologin
www-data│x   │33   │33   │www-data                          │/var/www       │/usr/sbin/nologin
backup  │x   │34   │34   │backup                            │/var/backups   │/usr/sbin/nologin
list    │x   │38   │38   │Mailing List Manager              │/var/list      │/usr/sbin/nologin
irc     │x   │39   │39   │ircd                              │/run/ircd      │/usr/sbin/nologin
gnats   │x   │41   │41   │Gnats Bug-Reporting System (admin)│/var/lib/gnats │/usr/sbin/nologin
_apt    │x   │100  │65534│                                  │/nonexistent   │/usr/sbin/nologin
nobody  │x   │65534│65534│nobody                            │/nonexistent   │/usr/sbin/nologin
[#19 rows]