문제 설명: 한 줄 명령으로 주어진 경로 이름에서 알 수 없는 문자열(마지막 문자열)을 추출하고 싶습니다.
한계:
- 경로는 동적이며 사용자 입력에 따라 변경될 수 있습니다.
- 단 한 줄의 명령을 사용하여 마지막 문자열을 추출합니다.
견본:
예시 1:
/home/xyz/Desktop/tools
이 경우에는 단어만 추출하면 됩니다 tools
.
예 2:
/tmp/my_directory/my_big_dir/my_small/dir/cross
이번에도 마지막 문자열을 추출해야 합니다.cross
이를 수행할 수 있는 방법이 있습니까?
명령을 사용해 보았지만 cut
경로 길이가 동적이기 때문에 작동하지 않습니다.
답변1
basename
나는 이것이 당신이 찾고있는 명령이라고 생각합니다 .
[me@host ~]# basename /home/xyz/Desktop/tools
tools
답변2
다른 프로그램을 호출하지 않고도 bash 및 기타 쉘에서 이 작업을 수행할 수 있으며 이는 물론 훨씬 빠릅니다.
$ x=/home/xyz/Desktop/tools
$ echo ${x##*/}
tools
$ y=/tmp/my_directory/my_big_dir/my_small/dir/cross
$ echo ${y##*/}
cross
이를 제거하면 ##
일치하는 가장 긴 접두사를 찾습니다.*/
답변3
basename /your/full/path
원하는 출력을 제공합니다: path