Linux shell 中如何从路径名提取指定字符串

Linux shell 中如何从路径名提取指定字符串
我要写一个shell 脚本 ,首先需要从文件名目录名中提取一串字符,但是遇到难题。
$PWD
路径名为 /home/ lxy/ hhhhh-a.bbb.cc.d (格式类型固定)
其中 现在我只想要 a.bbb.cc 这一段。
其中 hhhhh- 格式固定
a.bbb.cc.d 这一段长度有浮动,但前面的 a. 和后面的 .d 是固定的
我需要的是 a.bbb.cc 这一段 ,试过很多办法,cut awf sed grep 都无果,急求高手解决……

以 - 为分隔符,用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
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-09-14
[root@aiboap01 ~]# echo "/home/lxy/hhhhh-a.bbb.cc.d" | awk -F'-' '{print $2}' | cut -f 1-3
-d'.'
a.bbb.cc
[root@aiboap01 ~]#
第2个回答  2012-09-06
echo /home/lxy/hhhhh-a.bbb.cc.d | awk -F"/" '{print substr($4,7,length($4)-8)}'
相似回答