Substituir: com \ n usando sed

3

Estou tentando enviar meu $ PATH na linha de comando, mas também substituo o: por \ n usando o seguinte:

echo $PATH | sed s/:/\n/g

Isso não funciona 100%, como faço para que funcione?

    
por josef.van.niekerk 07.03.2013 / 11:06

2 respostas

5

Você precisa escapar da barra invertida, por exemplo

echo $PATH | sed s/:/\n/g

Ou, como BatchyX observou

echo $PATH | tr ':' '\n'

Outra possibilidade, se você quiser analisar $ PATH, você também pode usar

IFS=:
for i in $PATH; do
   echo $i
done

Aqui IFS=: diz bash para dividir as strings em : . Por favor, note que isto irá alterar outras coisas na sessão atual também. Trecho de man bash :

IFS The Internal Field Separator that is used for word splitting after expansion and to split lines into words with the read builtin command. The default value is <space><tab><newline>

    
por 07.03.2013 / 11:20
4

Você também pode citar a expressão regular:

echo $PATH | sed 's/:/\n/g'

Para seus literais \ n, você pode usar echo -e .

    
por 07.03.2013 / 11:34