3 votes

Remplacer : par \n en utilisant sed

J'essaie d'afficher mon $PATH dans la ligne de commande, mais aussi de remplacer le : par \n en utilisant les éléments suivants :

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

Cela ne fonctionne pas à 100%, comment faire pour que cela fonctionne ?

5voto

mpy Points 24817

Vous devez échapper à la barre oblique inversée, c'est à dire

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

Ou, comme l'a noté BatchyX

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

Une autre possibilité, si vous voulez analyser $PATH, vous pouvez aussi utiliser

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

Ici IFS=: dit à bash pour diviser les chaînes de caractères à : . Veuillez noter que cela modifiera également d'autres éléments de la session en cours. Extrait de man bash :

IFS Le séparateur de champs interne qui est utilisé pour le fractionnement des mots. après l'expansion et pour diviser les lignes en mots avec la commande intégrée de lecture. La valeur par défaut est <space><tab><newline>

4voto

user1406951 Points 111

Vous pouvez également citer l'expression régulière :

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

Pour votre \n vous pouvez utiliser echo -e .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X