echo $PATH
또는 같은 명령을 실행할 때 which program
가능한 디렉터리로 구성된 매우 큰 텍스트 블록을 받는 경우가 많습니다. 예를 들어 특정 경로가 있는지 확인하려는 경우 이는 상당히 쓸모가 없습니다.
각 항목이 새 줄에서 시작되도록 구분하는 방법이 있습니까?
출력에는 개행 문자가 포함되지 않지만 :
사용할 수 있는 것과 같은 적절한 구분 기호가 있음을 알 수 있습니다.
답변1
> echo foo:bar:baz | tr : '\n'
foo
bar
baz
> text=foo:bar:baz
> echo -e "${text//:/\n}"
foo
bar
baz
답변2
배열 에 매핑된 csh
, tcsh
또는 를 zsh
사용 하면 다음을 사용하여 한 줄에 해당 요소를 인쇄할 수 있습니다.$PATH
$path
printf '%s\n' $path
그냥 zsh를 사용하세요:
print -rl $path
(이것은 구성요소가 $PATH
다음으로 시작하지 않고 -
비어 있지 않다고 가정합니다. print -rl -- "$path[@]"
그렇지 않으면 사용됩니다.)
Bourne과 유사한 쉘의 경우 경로에 와일드카드가 포함되어 있지 않다고 가정합니다(포함된 경우 set -f;
앞에 추가 printf
).
(IFS=:; printf '%s\n' $PATH)
|grep something
특정 문자열을 검색하려면 일부를 추가하세요 .
$path
값을 검색하려면 zsh
다음을 수행할 수 있습니다.
vared path
그런 다음 평소와 같이 를 Ctrl+S사용 하여 앞으로 및 뒤로 검색하십시오(또는 Ctrl+R패턴을 사용하는 경우 vi
?
/ 해당 항목 )./
vi
답변3
GNU를 통해 sed
,
echo $PATH | sed 's/:/\n/g'
예:
$ echo $PATH | sed 's/:/\n/g'
/usr/local/sbin
/usr/local/bin
/usr/sbin
/usr/bin
/sbin
/bin
/usr/games
/usr/local/games