3

Я пытаюсь вывести свой $ PATH в командной строке, но также заменяю: на \n, используя следующее:

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

Это не работает на 100%, как мне заставить это работать?

2 ответа2

5

Вы должны избежать обратной косой черты, т.е.

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>

4

Вы также можете процитировать регулярное выражение:

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

Для ваших литералов \n вы можете использовать echo -e .

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .