2010-11-03 11 views
22

Voglio prendere il percorso della directory locale e mettere ogni directory sul percorso in una linea diversa. Ho cercato di farlo utilizzando taglio:tagliare una stringa in più righe in bash

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

ma non cambia il '/' s in EOL, ma mette n è invece. Cosa sto sbagliando?

risposta

36

Questo dovrebbe fare il trucco

pwd | tr '/' '\n' 

Se non si desidera una riga vuota all'inizio (a causa della iniziale /) si potrebbe fare

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

Esempio:

#[email protected]:~/tmp/files$ pwd 
/home/aioobe/tmp/files 
#[email protected]:~/tmp/files$ pwd | cut -b2- | tr '/' '\n' 
home 
aioobe 
tmp 
files 
6

Puoi provare:

pwd | tr '/' '\n' 
4

Questo è come si dovrebbe realizzare ciò che si prefiggono di fare (usando ANSI-C citando):

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