1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| #!/bin/sh
# La ligne de commande comporte un parametre
[ $# != 1 ] && { echo "Il faut 1 et 1 seul parametre" ; exit ;}
#ici, on n'affiche que les lignes d'en-tete
sed -n '/FILE/q;p' "$1"
#ici, on supprime les lignes d'en-tete puis on traite les lignes qui restent
sed '/FILE/!{d;b}
:B
{
$!N
s/\(.* "\)\(.*\)\([0-9][0-9]\)\(.*\n.* \)\([0-9]*\)\( .*\)/\1\2\3\4\3\6/;s/\(.*\n.* \)\([0-9] \)\(.*\)/\1\0\2\3/}
:A
s/\n$//
h
$!{N
/\nFILE/{x
s/\n/|/g
p
x
s/.*\n\(FILE.*\)/\1/
bB
}
bA
}
s/\n/|/g' "$1" | sort -t \| -k 2 | sed 's/|/\n/g' |