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
| #!/bin/bash
# Varaibles
src_filename="flux.txt"
result_file="resultat_flux.txt"
analyse_file="analyse"
tempfile="flux.tmp"
longueur_max=13
#Create the analyse file / creation du fichier analyse
echo "" > $analyse_file
#Create the result file / creation du fichier de resultats
echo "" > $result_file
#Create the temp file / creation du fichier temporaire
echo "" > $tempfile
#Main action
# Read each line of the text file / lit chaque lignes du fichier texte
while read -r line
do
# get the lenght of the line / recupere la longueur de la ligne
linesize=${#line}
# Si la longuere de la ligne est superieure Ã*3 (la limite),alors on copie la ligne ds le fichier analyse
if [ $linesize -gt $longueur_max ]; then
echo $line >> $analyse_file
else
# Sinon on ajoute la ligne dans un fichier temp que la commande sed traitera
echo $line >> $tempfile
fi
done < "$src_filename"
# Insert pipe characters / on insert des caracteres pipes
sed -e '{s/\(.\{33\}\)\(.\{3}\)\(.\{13\}\)\(.\{10\}\)\(.\{4\}\)\(.\{3\}\)\(.\{18\}\)\(.\{1\}\)\(.\{6\}\)/\1|\2|\3|\4|\5|\6|\7|\8|\9/}' -e '{s/\(.\{99\}\)\(.\{3\}\)\(.\{1\}\)\(.\{5\}\)\(.\{10\}\)\(.\{10\}\)\(.\{10\}\)\(.\{10\}\)\(.\{1\}\)/\1|\2|\3|\4|\5|\6|\7|\8|\9/}' -e '{s/\(.\{157\}\)\(.\{15\}\)\(.\{2\}\)\(.\{10\}\)\(.\{10\}\)\(.\{10\}\)\(.\{10\}\)\(.\{1\}\)/\1|\2|\3|\4|\5|\6|\7|\8/}' $tempfile |
Partager