2010-12-11 6 views

Répondre

3

Vous pouvez utiliser trouver:

find -name '*.txt' -exec head {} \; 
0

Une autre option consiste à utiliser -

find -name '*.txt' | xargs head 

S'il vous plaît noter que -nom ne travaille pas nécessairement dans tous les environnements En Dans ce cas, vous pouvez utiliser

find . | grep ".txt" | xargs head 
+2

Je n'ai jamais entendu parler de '-name' ne fonctionnant pas, mais il n'est pas rare que' find' se plaigne des arguments manquants en utilisant votre deuxième formulaire (au moins dans les anciennes versions). –

1

Si votre shell supporte (zsh ne, pas sûr du reste), vous pouvez utiliser la syntaxe **:

head **/*.txt 
+1

Ceci est également supporté dans Bash 4 avec 'shopt -s globstar' ou avec' ksh' avec 'set -o globstar'. –

0

J'ai essayé de faire la même chose; Voici ce qui a fonctionné pour moi (je produis la réponse au fichier headtest.txt). Notez que cela se déplacera dans le répertoire en cours et dans les sous-répertoires.

find . -type f -exec head '{}' \; >> headtest.txt 

Espérons que cela aide.

Questions connexes