Com mostrar les línies no repetides en dos arxius

Objectiu:

Aquesta entrada mostra una comanda, o unió de comandes, Linux per tal de mostrar aquelles línies que no estan repetides en dos arxius. Això potser es pot aconseguir d’una altra manera però no he estat capaç de realitzar el mateix amb eines com diff o comm.

Procediment:

Suposem que disposem de dos arxius anomenats a1.txt i a2.txt. Cadascun d’aquests arxius mostra un contingut com el següent:

$ cat a1.txt
aaa
bbb
ccc
$ cat a2.txt
aaa
ddd
bbb

El resultat d’executar la comanda proposada retornarà el següent:

ccc
ddd

La comanda proposada és:

$ cat a1.txt a2.txt | sort | uniq -c | sort -nr | grep 1 | cut -d ' ' -f5 | sort
ccc
ddd

Fàcil, també, no? Lamentablement, no és perfecta del tot ja que la comanda grep 1 pot mostrar resultats no desitjats, però vaja…

ldapsearch i ldapdecode com a àlies

Objectiu:

Aquesta és una entrada molt simple únicament per definir dos àlies per realitzar cerques en un directori ldap d’una forma més còmoda en un entorn de consola.

Procediment:

Definirem els següents alies:

$ alias lds='function _lds(){ ldapsearch -H ldap://ldap.domain.org -x -w password -LLL -D "uid=ldapuser,cn=users,dc=domain,dc=org" -b "dc=domain,dc=org" "(uid=$1)" cn; }; _lds'
$ alias ldd="perl -MMIME::Base64 -n -00 -e 's/\n //g;s/(?<=:: )(\S+)/decode_base64(\$1)/eg;print'"

Per executar una cerca fem el següent:

$ lds username | ldd

Fàcil, no?