Open mallek-ahmed opened 1 year ago
wc -l fichier.txt
wc -l fichier.txt | cut -d' ' -f1
file_path="fichier.txt"
nb_lignes=$(wc -l $file_path | cut -d' ' -f1)
nbr_max=$((nb_lignes / 4))
echo "Nombre de lignes: $nb_lignes" echo "Nombre max (1/4 du nombre de lignes): $nbr_max"
sort_large_file() {
local chunk_size="$1" local input_file="$2" local temp_outputfile="temp$3" local output_file="$3"
local prefix="splitfile"
split -l "$chunk_size" "$input_file" "$prefix"
for file in $prefix*; do sort "$file" -o "$file" done
sort -m $prefix* -o "$temp_output_file"
sed -e '$ d' "$temp_output_file" > "$output_file"
rm $prefix* rm "$temp_output_file" }
sort_large_file 1000000 "bigfile.txt" "sortedfile.txt"
sort_large_file() {
local chunk_size="$1" local input_file="$2" local output_file="$3"
local prefix="splitfile"
split -l "$chunk_size" "$input_file" "$prefix"
for file in $prefix*; do sort "$file" -o "$file" done
sort -m $prefix* -o "$output_file"
truncate -s -1 "$output_file"
rm $prefix* }
sort_large_file 10000 testfile.txt sortedfile.txt
!/bin/bash
sort_large_file() {
Récupérez les paramètres
local chunk_size="$1" local input_file="$2" local output_file="$3"
Préfixe pour les fichiers temporaires
local prefix="splitfile"
Divisez le fichier en morceaux
split -l "$chunk_size" "$input_file" "$prefix"
Triez les morceaux individuellement
for file in $prefix*; do sort "$file" -o "$file" done
Fusionnez les fichiers triés
sort -m $prefix* -o "$output_file"
Supprimez les fichiers temporaires
rm $prefix* }
Utilisation de la fonction
sort_large_file 1000000 "bigfile.txt" "sortedfile.txt"