Как вывести директории в переменной PATH, по одной на каждой строке

echo src::${PATH} | awk 'BEGIN{pwd=ENVIRON["PWD"];RS=":";FS="\n"}!$1{$1=pwd}$1!~/^\//{$1=pwd"/"$1}{print $1}'


Команда выводит список директорий, находящихся в переменной окружения PATH, каждую на новой строке. Для этого команда использует команду echo, пайп и awk.

Echo src::${PATH} выводит значение PATH, добавляя префикс «src::». Далее, пайп передает вывод команды в awk, который разбивает строку по разделителям с помощью RS и FS. Для каждой строки автоматически создается переменная $1.

Если $1 не определено, то awk задает значение текущей директории переменной $1 (pwd). Аргументы команды передаются awk внутри одинарных кавычек. Каждый элемент разделителя RS («:» в данном случае) разбивается на отдельную строку.

Так как awk работает с паттернами регулярных выражений, то в случае отсутствия «/» в начале строки awk добавляет каталог текущей директории(pwd) в начало переменной $1. Команда печатает значение $1 для каждой строки, которая затем выводится в терминал.

Альтернативой этому подходу может быть команда «echo $PATH | tr : ‘\n'», которая также выводит содержимое переменной $PATH, но использует утилиту ‘tr’ для замены разделителя «:» на символ перевода строки для вывода каждой директории на отдельной строке в консоли.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *