Ici, les documents évitent la création d'un fichier intermédiaire à utilisation unique. J'espérais faire usage de cela lors de l'obtention des chemins complets de 20 fichiers possibles (sans utiliser la syntaxe find -o
). Je me attendais à ce qui suit au travail:grep -f avec un document ici
find | grep -f <<EOF
Controller.java
Main.java
Config.java
EOF
mais je reçois:
grep: option requires an argument -- f
que je comprends mal comment ici les documents de travail? Ou grep -f ne joue pas bien avec les descripteurs de fichiers?
Je suis également ouvert aux solutions avec find
qui peut prendre une liste de -name
valeurs, mais je ne veux pas avoir à taper -o
20 fois.
meilleure alternative:
cat <<EOF | xargs --delimiter '\n' --max-args=1 -I% find -iname "*%*"
Controller.java
Main.java
Config.java
EOF
Ceci est intellectuellement peu satisfaisant parce que vous êtes en cours d'exécution find
sur toute la hiérarchie de fichiers une fois pour chaque modèle de recherche qui ne sera pas bien échelle pour les grandes hiérarchies de répertoires.
Non totalement suivre, mais voulez-vous juste 'grep -f-' où cela indique à grep de lire une liste de modèles de standard dans? Vous devrez alors également lui donner une liste de fichiers dans la chaîne de commande. – stevesliva
Hmmmm, c'est lié mais je ne pense pas pouvoir le passer via stdin car j'ai besoin de la commande stdout de la commande 'find' pour être la commande stdin de la commande' grep'. –