extrait de nom de fichier à partir du chemin dans le shell csh — à partir de la liste de fichiers
Comment extraire le fichier dans le chemin; j'ai une liste de fichiers. Je suis en utilisant le shell csh, et awk, sed, perl installé.
/dfgfd/dfgdfg/filename
devrait me donner
nom de fichier
J'ai essayé basename:
find $PROJDIR -name '*.c' -o -name '*.cc' -o -name '*.h'
| xargs grep -l pattern | xargs basename
et il m'a donné le message d'erreur suivant:
basename: trop peu d'arguments
Essayez `basename --help " pour plus d'informations.
thx
Vous devez vous connecter pour publier un commentaire.
Le programme standard
basename
fait ce que vous voulez:basename
ne fonctionne que sur un seul nom de fichier à la fois. Remplacer la dernière partie parxargs -n1 basename
.-r
, pour éviter de courir unbasename
sans arguments, si il n'y a pas de matches.Ce genre de solution a fonctionné pour moi. Vous avez dit que vous aviez perl, donc cela devrait fonctionner. Il remplace tous les sans espace texte jusqu'à la dernière /avec rien (dans les faits, de les supprimer).
Ok j'ai trouvé une belle solution à l'aide de AWK:
essayez ceci !!
comme basename accepet seul paramètre de chemin comme argument, si nous avons la force xargs pour diviser un par un.