Я пытаюсь вывести свой $ PATH в командной строке, но также заменяю: на \n, используя следующее:
echo $PATH | sed s/:/\n/g
Это не работает на 100%, как мне заставить это работать?
Я пытаюсь вывести свой $ PATH в командной строке, но также заменяю: на \n, используя следующее:
echo $PATH | sed s/:/\n/g
Это не работает на 100%, как мне заставить это работать?
Вы должны избежать обратной косой черты, т.е.
echo $PATH | sed s/:/\\n/g
Или, как отметил BatchyX
echo $PATH | tr ':' '\n'
Еще одна возможность, если вы хотите проанализировать $ PATH, вы также можете использовать
IFS=:
for i in $PATH; do
echo $i
done
Здесь IFS=:
говорит bash
разделить строки в :
Обратите внимание, что это изменит и другие вещи в текущем сеансе. Выдержка из man bash
:
IFS Внутренний разделитель полей, который используется для разделения слов после раскрытия и разделения строк на слова с помощью встроенной команды read. Значением по умолчанию является
<space><tab><newline>
Вы также можете процитировать регулярное выражение:
echo $PATH | sed 's/:/\n/g'
Для ваших литералов \n вы можете использовать echo -e
.