以 - 为分隔符,用cut命令取第二个字段就行了啊(只要路径名里不含 - 即可)
echo "/home/lxy/hhhhh-a.bbb.cc.d" | cut -d'-' -f2
更保险一点的做法是先取出文件名(防止路径名里含 - ),然后再用上述方法处理:
echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F/ '{print $NF}' | cut -d'-' -f2
[root@aiboap01 ~]# echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F'-' '{print $2}' | cut -f 1-3
-d'.'
a.bbb.cc
[root@aiboap01 ~]#
echo /home/lxy/hhhhh-a.bbb.cc.d | awk -F"/" '{print substr($4,7,length($4)-8)}'