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 32 33 34 35 36 37 38 39 40 41 42 43 44
|
#!/bin/ksh
# Extraction des cles iuniquement
echo "extraction des cles du fichier 1"
cut -f2 fichier1 > cles.txt
# tri du fichier des cles(necessaire pour join)
echo "tri de fichier1"
sort cles.txt -o cles.txt
# tri du 2eme fichier, sur le 5eme champ (necessaire pour join)
echo "tri de fichier2"
cut -f5 fichier2 > cles_2.txt
sort cles_2.txt -o cles_2.txt
# Jointure du fichier des cles avec le fichier de donnees pour marquage des lignes
# * sur le champ 1 du fichier des cles et le champ 5 du 2eme fichier
# * en marquant les lignes non reconnues
# on ne conserve que les lignes qui n'ont pas trouvee correspondance
echo "jointure"
join -1 1 -2 1 -t "\t" -o "1.1 2.1" -a2 -e "NONMATCHED" cles.txt cles_2.txt | egrep "^NONMATCHED" > jointure.txt
echo "selection"
cut -f2- jointure.txt > inter.txt
cut -f2 -d'\' inter.txt > coup.txt
cat coup.txt | grep -v "^NONMATCHED" > coup_v2.txt
LIST=$(cat coup_v2.txt | grep -i -v '[a-z][a-z]*' > coup_v3.txt)
# A present, on ne conserve que les champs du 2eme fichier (ceux d'indice 2 et plus)
echo "regroupement"
for i in $LIST
do
liste=`cat coup_v3.txt | grep $i`
echo $liste >> resultat.txt
done
# un peu de nettoyage de nettoyage a present
echo "nettoyage"
rm -f inter.txt
rm -f cles_2.txt
rm -f cles.txt
rm -f fichier2.temp
rm -f jointure.txt
rm -f coup.txt
rm -f coup_v2.txt
rm -f coup_v3.txt |