Comment puis-je supprimer tout le texte après un caractère, dans ce cas un deux-points (":"), en bash ? Puis-je aussi supprimer le deux-points ? Je n'ai aucune idée de comment faire.
Réponses
Trop de publicités?Supposons que vous avez un chemin avec un fichier dans ce format:
/dirA/dirB/dirC/nom_fichier.fichier
Maintenant, vous voulez seulement le chemin qui comprend quatre "/". Tapez
$ echo "/dirA/dirB/dirC/nom_fichier.fichier" | cut -f1-4 -d"/"
et votre sortie sera
/dirA/dirB/dirC
L'avantage d'utiliser cut est que vous pouvez également couper le répertoire le plus élevé ainsi que le fichier (dans cet exemple), donc si vous tapez
$ echo "/dirA/dirB/dirC/nom_fichier.fichier" | cut -f1-3 -d"/"
votre sortie serait
/dirA/dirB
Vous pouvez également faire la même chose depuis l'autre côté de la chaîne, mais cela n'aurait pas beaucoup de sens dans ce cas car en tapant
$ echo "/dirA/dirB/dirC/nom_fichier.fichier" | cut -f2-4 -d"/"
le résultat sera
dirA/dirB/dirC
Dans d'autres cas, le dernier cas pourrait également être utile. Notez qu'il n'y a pas de "/" au début de la dernière sortie.
- Réponses précédentes
- Plus de réponses