#!/bin/bash## Renomme des fichiers dans un repertoire suivant un referentiel# Change l entete de fichier par la variable NV_ENTETE## Init de variablesEMP_REF="ref_files.csv"EMP_DIR="rep_a_traiter"# Nouvel enteteNV_ENTETE="MON NOUVEL ENTETE DE FICHIER"# Parse du fichier de reference des fichiers a traiterfor line in `cat $EMP_REF`;do # Init variables CUR_FILE=`echo $line | cut -d';' -f 1` NV_FILE=`echo $line | cut -d';' -f 2` # Concat var avec repertoire de traitement DIR_CUR_FILE=$EMP_DIR/$CUR_FILE DIR_NV_FILE=$EMP_DIR/$NV_FILE echo "[TRAITEMENT] RENOMMER $DIR_CUR_FILE en $DIR_NV_FILE" # Test si fichier present if [ -f $DIR_CUR_FILE ] then echo "[INFO] Fichier $DIR_CUR_FILE present" # Renommer le fichier mv $DIR_CUR_FILE $DIR_NV_FILE # Si le fichier renomme est present if [ -f $DIR_NV_FILE ] then # Recuperation premiere ligne du fichier comme BASE de reference pour la recherche de la premiere ligne NV_FILE_HEAD=`head -1 $DIR_NV_FILE` # Remplacement de l entete par la variable NV_ENTETE directement dans le fichier (argument -i de sed) sed -i s/"$NV_FILE_HEAD"/"$NV_ENTETE"/g $DIR_NV_FILE # Si code retour de SED = 0 if [ $? -eq 0 ] then echo "[INFO] Traitement entete sur $DIR_NV_FILE" else echo "[ERREUR] Traitement entete sur $DIR_NV_FILE" fi else echo "[ERREUR] Le fichier $DIR_CUR_FILE n a pas ete correctement renomme en $DIR_NV_FILE" fi else echo "[ERREUR] Le fichier $DIR_CUR_FILE n est pas present" fidone