用点和连字符拆分目录

Split Directory with dots and hyphen

我想拆分此路径,以便将目录名称作为变量。但是他被打断了。

拆分路径:

/home/user/T.A.T.E.-ano_ays-(ff-A-a)-ownage

代码:

bind pub "-|-" !aaa pub:aaa
proc pub:aaa { nick uhost hand chan arg } {

    set checkpath "/home/user/T.A.T.E.-ano_ays-(ff-A-a)-ownage"
    set dirname [file rootname [file tail $checkpath]]
    putnow "PRIVMSG $chan :dirname $dirname"
}

输出:

dirname T.A.T.E

正确的是: 目录名 T.A.T.E.-ano_ays-(ff-A-a)-ownage

如何修复 dirname

的输出

这就是 file split 的用途:

% lindex [file split /home/user/T.A.T.E.-ano_ays-(ff-A-a)-ownage] end
T.A.T.E.-ano_ays-(ff-A-a)-ownage

file tail 无需通过 file rootname 进行后处理也可以:

% file tail /home/user/T.A.T.E.-ano_ays-(ff-A-a)-ownage
T.A.T.E.-ano_ays-(ff-A-a)-ownage

file rootname 在(不包括)最后一个点 ..

处剪切尾随文件路径组件