mallek-ahmed / Git-Repo

0 stars 0 forks source link

Shell program for file comparison. #7

Open mallek-ahmed opened 1 year ago

mallek-ahmed commented 1 year ago

!/bin/sh

Variables

FICHIER1="Fichier1.txt" FICHIER2="Fichier2.txt" RESULTAT_1="Resultat_1.txt" RESULTAT_2="Resultat_2.txt"

Trier les fichiers si ce n'est pas déjà fait (supprimer ces deux lignes si les fichiers sont déjà triés)

sort -o "${FICHIER1}" "${FICHIER1}" sort -o "${FICHIER2}" "${FICHIER2}"

Utiliser 'comm' pour comparer les fichiers et générer les fichiers de résultat

comm -23 "${FICHIER1}" "${FICHIER2}" > "${RESULTAT_1}" comm -13 "${FICHIER1}" "${FICHIER2}" > "${RESULTAT_2}"

mallek-ahmed commented 1 year ago

!/bin/sh

Variables

FICHIER_SOURCE="source.txt" FICHIER_TEMP="File1.txt" FICHIER_RESULTAT="File2.txt"

Extraire les caractères de la position 5 à 27 de chaque ligne

awk '{print substr($0, 5, 23)}' "${FICHIER_SOURCE}" > "${FICHIER_TEMP}"

Obtenir les lignes distinctes et les écrire dans le fichier résultat

sort "${FICHIER_TEMP}" | uniq > "${FICHIER_RESULTAT}"

Supprimer le fichier temporaire

rm "${FICHIER_TEMP}"

mallek-ahmed commented 1 year ago

!/bin/sh

Variables

FICHIER1="Fichier1.txt" FICHIER2="Fichier2.txt" RESULTAT_1="Resultat_1.txt" RESULTAT_2="Resultat_2.txt" DEBUT=20 FIN=50

Supprimer les caractères du début et de la fin de chaque ligne

awk -v debut=$DEBUT -v fin=$FIN '{print substr($0, debut, length($0) - debut - fin + 1)}' "${FICHIER1}" > temp1.txt awk -v debut=$DEBUT -v fin=$FIN '{print substr($0, debut, length($0) - debut - fin + 1)}' "${FICHIER2}" > temp2.txt

Trier les fichiers temporaires

sort -o temp1.txt temp1.txt sort -o temp2.txt temp2.txt

Comparer les fichiers temporaires

comm -23 temp1.txt temp2.txt > "${RESULTAT_1}" comm -13 temp1.txt temp2.txt > "${RESULTAT_2}"

Supprimer les fichiers temporaires

rm temp1.txt temp2.txt