Un truc typique sur linux c’est d’ajouter des chemins à votre PATH pour accéder à des binaires mais sans vérifier que ce chemin existe déjà. Du coup on perd un peu en perf et c’est très moche.
Je ne vous propose pas de commande pour vérifier si un chemin existe déjà mais plutôt une commande qui vous permettra de recréer votre variable $PATH sans les doublons. Ainsi vous pouvez ajouter cela au moment du chargement de vos variables d’environnement.
export PATH=`echo -n $PATH | awk -v RS=":" '{ if (!x[$0]++){printf s $0 ; s=":"}}'`
L’option RS de awk s’appelle record separator. Il permet de définir les séparateur de ligne.
L’autre option souvent utilisée avec awk c’est FS pour fiels separator. On défini alors les séparateur de champs comme par exemple le “;” pour les fichiers de type csv.
Ensuite pour aller un petit peu plus loin on peut aussi utiliser les output de ces options à savoir OFS ou ORS. Ainsi c’est l’inverse on définit comment on souhaite afficher les spérateur de champs ou de ligne.
Par exemple :
awk -F':' 'BEGIN{OFS=">";} {print $3,$4;}' /etc/passwd 1001>1001 1002>1002 1003>1003
En gros on parcours le passwd en définissant les champs par un FS valant “:”. Puis pour la sortie du résultat on redéfinie un séparateur de champ avec un OFS valant “>”.
Il y a aussi dans les options courantes pour les oneliner :
- NR (number rows) : affiche le nombre de ligne
- NF (number fields) : nombre de champs
Ainsi on pourrait afficher le nombre de ligne dont le nombre de champs vaut une certaine valeur.
AWK est un vrai couteau suisse pour qui sait l’utiliser.