linux - 从右边提取两个/之间的字符串

标签 linux bash awk sed scripting

从右边提取两个/之间的字符串

命令准备:

输入:- [目录名称不固定]

示例 1:-

/dir1/dir2/

示例 2:-

/dir1/dir2/dir3/dir4/

我想要如下输出

示例 1 输出:-

nohup dsmc arch /dir1/dir2/ -subdir=yes > /tsm/backuplogs/dir2_`date +%d%m%y_%H_%M`.log &

示例 2 输出:-

nohup dsmc arch /dir1/dir2/dir3/dir4/ -subdir=yes > /tsm/backuplogs/dir4_`date +%d%m%y_%H_%M`.log &

最佳答案

试试这个来提取子字符串:

basename /dir1/dir2/dir3/dir4/

输出:

dir4

With bash builtin commands:

string="/dir1/dir2/dir3/dir4/"
string="${string%/*}"           # remove trailing /
echo "${string##*/}"            # remove /dir1/dir2/dir3/

输出

dir4

关于linux - 从右边提取两个/之间的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29092293/

相关文章:

linux - 在 qemu 中测试 linux 内核

linux - 如何调试 bash 提示符?

bash - 配置命令未找到 cygwin

linux - 连接丢失时自动关闭 PuTTY

regex - 按字符在字符类中的位置对 grep 匹配项进行排序

linux - 如何理解git命令的结构?

arrays - 将数组传递给函数名称冲突

linux - 从字符串中抓取特定的文本部分

xml - 使用 Shell 脚本将 XML 文件的标签存储在数组中

arrays - 在bash中计算数组中的字符串