web-dev-qa-db-fra.com

couper une chaîne en plusieurs lignes en bash

Je veux prendre le chemin du répertoire local et mettre chaque répertoire sur le chemin dans une ligne différente. J'ai essayé de le faire en utilisant cut:

pwd | cut -f 1- -d\/ --output-delimiter=\n

mais il ne change pas les '/' en EOL, mais met les n à la place. Qu'est-ce que je fais mal?

36
SIMEL

Cela devrait faire l'affaire

pwd | tr '/' '\n'

Si vous ne voulez pas de ligne vide au début (en raison du / Initial), vous pouvez le faire

pwd | cut -b2- | tr '/' '\n'

Exemple:

#aioobe@r60:~/tmp/files$ pwd
/home/aioobe/tmp/files
#aioobe@r60:~/tmp/files$ pwd | cut -b2- | tr '/' '\n'
home
aioobe
tmp
files
54
aioobe

Tu peux essayer:

pwd | tr '/' '\n'
8
codaddict

Voici comment vous accomplirez ce que vous vous apprêtez à faire (en utilisant la citation ANSI-C):

pwd | cut -f 1- -d\/ --output-delimiter=$'\n'