我试图在linux(tcsh)中提取分隔字符串的最后一部分。
例如: 我有一个字符串是/ dir1 / dir2 / dir3,输出应该只是dir3。
我想要实现的完整任务是: 我想找到遵循给定模式的目录名,但是“find”命令返回一个完整路径,而不仅仅是最后一个目录,这正是我想要的。此外,“find”命令的结果应该分成一个arry,以便稍后用脚本处理。
命令我用来查找目录:
find path -maxdepth 2 -type d -name "*abc*"
提前致谢, 佩德罗
答案 0 :(得分:1)
您可能对命令basename
:
$ basename /dir1/dir2/dir3
dir3
man basename
: 打印NAME
并删除任何前导目录组件。
这可以与find
合并为:
$ find path -maxdepth 2 -type d -name "*abc" -exec basename {} \;
或者您可以避免basename
,只需将其传递给awk
:
$ find path -maxdepth 2 -type d -name "*abc" | awk -F'/' '{print $NF}'
但如果你真的想避免任何事情而只是使用find
,你可以使用printf
find
语句作为:
$ find path -maxdepth 2 -type d -name "*abc" -printf "%f\n"
man find
:%f
删除了任何主要目录的文件名(仅限最后一个元素)。