informatique:bash:rechercher

Rechercher

Un petit mémo sur les recherches de fichiers en ligne de commande sous Linux avec find et grep. Pour tous les exemples de find j’utilise l’option -exec qui permet d’appliquer une autre commande (ls, rm, etc…) aux résultats de la recherche. Evidemment on n’est pas obligé.

Lister les fichiers dont le nom est « toto » à partir du répertoire courant :

find . -name "toto" -exec ls -lh "{}" \;

Pour ce type de recherche simple il ne faut pas oublier la commande locate, très rapide car elle va lire une base d’indexation au lieu de parcourir l’arborescence des répertoires. Par contre les fichiers trop récents ne seront pas forcément indexés. La commande suivante recherche tous les fichiers dont le chemin contient « toto » :

locate toto

Pour faire une recherche insensible à la casse on utilise -iname à la place de -name :

find . -iname "toto" -exec ls -lh "{}" \;

Lister les fichiers dont l’extension est « .log » à partir du répertoire courant :

find . -name "*.log" -exec ls -lh "{}" \;

Lister les répertoires dont le nom est « toto » à partir du répertoire courant :

find . -name "toto" -type d -exec ls -d "{}" \;

Lister les répertoires dont le chemin contient « /local/bin » à partir du répertoire courant :

find . -wholename "*/local/bin*" -type d -exec ls -d "{}" \;

On peut combiner les critères avec les opérateurs -a pour et, -o pour ou et ! pour la négation.

Lister les répertoires dont le nom est « toto » qui ne sont pas un sous-répertoire de « /scripts/bash »

find . \( -name "toto" -a ! -wholename "*/scripts/bash/*" \) -exec ls -d "{}" \;

Pour lister les fichiers de plus de 500Mo à partir du répertoire courant :

find . -size +500M -exec ls -lh "{}" \;

Pour supprimer ces mêmes fichiers avec confirmation :

find . -size +500M -exec rm -iv "{}" \;

Lister les fichiers qui n’ont pas été modifiés depuis 2 mois, à partir du répertoire courant :

find . -mtime 60 -exec ls -lh "{}" \;

Compter le nombre de fichiers du répertoire courant :

find . -maxdepth 1 -type f | wc -l

Compter le nombre de fichiers pdf dans le répertoire courant et ses sous-répertoires :

find . -type f -iname "*.pdf" | wc -l

Recherche les fichiers contenant « toto » dans le répertoire courant, affiche le nom du fichier et la ligne correspondante :

grep "toto" *

La même chose avec une recherche récursive dans les sous-répertoires :

grep -r "toto" *

Recherche sans tenir compte de la casse :

grep -i "toto" *

Ta vie on s'en fout ! 2013/04/08 22:54

Script à écrire dans ~/scripts/search-odt :

#!/bin/bash
 
find . -type f -name "*.odt" | while read i ; do
   [ "$1" ] || { echo "You forgot search string!" ; exit 1 ; }
   unzip -ca "$i" 2>/dev/null | grep -iq "$*"
   if [ $? -eq 0 ] ; then
      echo "string found in $i" | nl
   fi
done

Puis rendre executable le script :

chmod +x ~/scripts/search-odt
PATH=$PATH:~/scripts

Appeler le script dans un dossier :

[cedric24c@dskstd courrier]$ search-odt finances publiques
     1	string found in ./2012/20121025204239.odt

https://askubuntu.com/questions/938834/grep-for-text-in-odt-or-doc-files 2019/11/26 18:15

Entrer votre commentaire. La syntaxe wiki est autorisée:
   ___    _  __   _  __   ____   __ __
  / _ )  / |/ /  / |/ /  /  _/  / // /
 / _  | /    /  /    /  _/ /   / _  / 
/____/ /_/|_/  /_/|_/  /___/  /_//_/
 
  • Partager le signet (social bookmarking)
  • Partager "Rechercher" sur Reddit
  • Partager "Rechercher" sur blogmarks
  • Partager "Rechercher" sur Google
  • Partager "Rechercher" sur Socializer
  • Partager "Rechercher" sur Spurl
  • Partager "Rechercher" sur StumbleUpon
  • Partager "Rechercher" sur Tailrank
  • Partager "Rechercher" sur Technorati
  • Partager "Rechercher" sur Wists
  • Partager "Rechercher" sur Yahoo! Myweb
  • Partager "Rechercher" sur BobrDobr
  • Partager "Rechercher" sur Memori
  • Partager "Rechercher" sur Faves
  • Partager "Rechercher" sur Favorites
  • Partager "Rechercher" sur Facebook
  • Partager "Rechercher" sur Newsvine
  • Partager "Rechercher" sur Twitter
  • Partager "Rechercher" sur myAOL
  • Partager "Rechercher" sur RawSugar
  • Partager "Rechercher" sur LinkaGoGo
  • Partager "Rechercher" sur Mister Wong
  • Partager "Rechercher" sur Wink
  • Partager "Rechercher" sur Diigo
  • Partager "Rechercher" sur Netvouz
  • informatique/bash/rechercher.txt
  • Dernière modification: 2019/11/26 18:22
  • par Cédric ABONNEL