Pb Find ! -name

Résolu
Bonjour,
voici mon pb..
Je dispose de plusieurs fichiers :
toto_13_ouput
titi_14_output
tato_62_output
tuto_23_output
tata
tutu

Je souhaite garder les 1000 premieres lignes des fichiers output ( mais en excluant les fichiers de type titi*output)
donc pour se faire ( concernant tous les fichiers *ouptut) :
j utilise head -n 1000 *output* > fichier_final

pour exclure les titi*output* :
find . ! name '*titi*output*' -exec head -n 1000 > fichier_final{} \;
mais il me prend les 1000 premieres lignes de TOUT les fichiers..

Donc ma question :
comment exclure d'une premiere sélection (*output*), lors d'un head ,un type de fichiers (*titi*output*) ?

Merci D'avance

Michael Scott : )

1 réponse

  1. Contributeur
    Salut,

    Tu dois avoir un problème dans ta syntaxe ;-(

    $ ls -1
    tata
    tato_62_output
    titi_14_output
    toto_13_ouput
    tuto_23_output
    tutu

    $ find . ! -name '*titi*output*'
    .
    ./tutu
    ./tata
    ./tuto_23_output
    ./tato_62_output
    ./toto_13_ouput

    1. non ca j y arrive

      mais je ne veux pas les fichiers qui ne sont pas *output ( dc tutu et tata)
      ...
    2. j'aimerai en sortie :
      ./tuto_23_output
      ./tato_62_output
      ./toto_13_ouput
    3. c est bon j ai résolu tout seul ^^
      merci copain toulouse Zen de m avoir aidé
      Reponse:
      find -type f \( -name "*ta*" -o -name "*to*" \) -exec head -n 1000 > IMPORT {} \;
    4. Contributeur
      $ ls -1
      tata
      tato_62_output
      titi_14_output
      toto_13_output
      tuto_23_output
      tutu

      $ find . \( ! -name '*titi*' -a -name '*output' \)
      ./toto_13_output
      ./tuto_23_output
      ./tato_62_output
    5. ah oui!!!
      c beaucoup mieux ta réponse !
      merci encore !