![패턴의 마지막 단어를 인쇄하세요](https://linux55.com/image/165231/%ED%8C%A8%ED%84%B4%EC%9D%98%20%EB%A7%88%EC%A7%80%EB%A7%89%20%EB%8B%A8%EC%96%B4%EB%A5%BC%20%EC%9D%B8%EC%87%84%ED%95%98%EC%84%B8%EC%9A%94.png)
다음 패턴의 마지막 단어를 인쇄하고 싶습니다. 예를 들어 /rahul/file.txt --> file.txt를 인쇄해야 하며, 패턴이 /rahul/sample/file1.txt인 경우 --> file1.txt를 인쇄해야 합니다. 인쇄되었습니다.
가장 쉬운 방법은 기본 이름을 사용하는 것이지만 내 Jenkins에서는 작동하지 않습니다. 다른 방법이 있나요?
답변1
AND csh
, tcsh
OR 가 포함된 zsh
경우 다음으로 확장됩니다 .$var
/path/to/file
$var:t
꼬리네 $var
, 그렇습니다 file
.
당신은 이와 같은 것을 얻을 것이다 vim
.
그 :h
(머리), :t
(꼬리), :r
(루트), :e
(확장자)수정자또한 기록 확장(csh, tcsh, bash, zsh) 및 zsh
.
/
에 대한 구현 또는 이에 상응하는 구현 간에는 동작에 약간 의 //
차이가 있습니다 /some/dir/
.
다른 쉘의 경우 언제든지 다음 basename
명령을 사용할 수 있습니다.
basename -- "$var"
출력됩니다꼬리에 대해서도 마찬가지입니다 $var
.
다른 변수에 저장할 수 있습니다.
other_var=$(basename -- "$var")
$var
(단, 개행 문자로 끝나면 제대로 작동하지 않습니다.)
POSIX 셸을 사용하여 ${var##*/}
으로 확장 $var
하고 맨 오른쪽에 있는 모든 항목을 삭제합니다 /
.
어쨌든, 당신의젠킨스질문은 관련이 없을 수 있으며 실행하려는 명령을 해석하는 셸을 실행하는 방법에 따라 달라질 수 있습니다.