경로에서 문자열 추출

경로에서 문자열 추출

문제 설명: 한 줄 명령으로 주어진 경로 이름에서 알 수 없는 문자열(마지막 문자열)을 추출하고 싶습니다.

한계:

  1. 경로는 동적이며 사용자 입력에 따라 변경될 수 있습니다.
  2. 단 한 줄의 명령을 사용하여 마지막 문자열을 추출합니다.

견본:

예시 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

관련 정보