|
Fichier script droits.awk :
# Nicolas Pons (19/11/2004)
# Modifie l'affichage des droits Unix dans un `ls -l`.
# La notation symbolique est remplacée par de l'octal.
#
# Usage : ls -l | awk -f [ce fichier]
BEGIN {
# Suppression de la 1ère ligne contenant "total" dans
# l'affichage du `ls -l`
getline
# Ajout d'une ligne d'entête
print "---------- Début traitement AWK ----------"
}
{
# Conversion notation symbolique -> octal
gsub(/rwx/,7,$1)
gsub(/rw-/,6,$1)
gsub(/r-x/,5,$1)
gsub(/r--/,4,$1)
gsub(/-wx/,3,$1)
gsub(/-w-/,2,$1)
gsub(/--x/,1,$1)
gsub(/---/,0,$1)
# Affichage du résultat
print $0
}
END {
# Ajout d'une ligne en fin de traitement
print "----------- Fin traitement AWK -----------"
}
Exemple d'exécution :
$ ls -l
total 32
-rw-r--r-- 1 nicolas users 816 Mar 2 11:14 droits.awk
-rw-r--r-- 1 nicolas users 570 Mar 2 11:13 droits.sed
-rw-r--r-- 1 nicolas users 81 Dec 6 16:12 fic1
-rw-r--r-- 1 nicolas users 119 Dec 6 16:15 fic2
-rw-r--r-- 1 nicolas users 7 Dec 6 15:25 fichier2
lrwxrwxrwx 1 nicolas users 8 Dec 6 15:26 fichier3 -> fichier1
-rw-r--r-- 1 nicolas users 90 Mar 2 10:58 numeros
drwxr-xr-x 2 nicolas users 4096 Dec 6 15:46 rep
drwxr-xr-x 3 nicolas users 4096 Dec 6 16:52 ttt
$ ls -l | awk -f droits.awk
---------- Début traitement AWK ----------
-644 1 nicolas users 816 Mar 2 11:14 droits.awk
-644 1 nicolas users 570 Mar 2 11:13 droits.sed
-644 1 nicolas users 81 Dec 6 16:12 fic1
-644 1 nicolas users 119 Dec 6 16:15 fic2
-644 1 nicolas users 7 Dec 6 15:25 fichier2
l777 1 nicolas users 8 Dec 6 15:26 fichier3 -> fichier1
-644 1 nicolas users 90 Mar 2 10:58 numeros
d755 2 nicolas users 4096 Dec 6 15:46 rep
d755 3 nicolas users 4096 Dec 6 16:52 ttt
----------- Fin traitement AWK -----------
|