Retour : Page Principale > sommaire aide > sommaire aide-mémos

Diverses manipulations de fichiers avec BASH


Produire la liste des fichiers qui sont présents dans une liste et pas dans l'autre

diff liste1.txt liste2.txt | grep '^<' | cut -c 3-


Bzipper tous les TIF d'un dossier, en se basant sur une liste contenue dans un fichier

for i in `cat ~/ma_liste.txt`; do bzip2 -kc $i > /mon_dossier/de_destination/$i.bz2; done


Lister les fichiers d'un dossier, dont les noms sont contenus dans une liste, en affichant la taille en Mo telle que calculée par Windows (1000x1024 !?)

cat ~/ma_liste.txt | xargs ls -l --block-size=1024000 | awk '{print $9,"\t",$5}' > ~/mon_dossier/de_destination/liste_avec_tailles.txt


Compter le nombre de fichiers dans un dossier

Attention c'est "ls -1" (chiffre un) et "wc -l" (lettre L)
ls -1 |wc -l


Renommer des fichiers par lot en appliquant une expression régulière sur les noms


Affichage des noms générés pour tester avant de renommer :
for old in `ls *.jpg`; do new=$(echo $old | sed -e 's/\.tif\.bz2//'); echo $new; done

Renommage :
for old in `ls *.jpg`; do new=$(echo $old | sed -e 's/\.tif\.bz2//'); mv $old $new; done