shell脚本从字符串中获取文件名

时间:2010-02-09 07:06:03

标签: shell ksh

我需要在.jks之前获取文件的底层名称(esrt-deghasdf-keystore)。我想用shellcript来做。有可能吗?

abcdefgh 7369 4825 0 00:12:26 pts/10 0:37 java -Djavax.net.ssl.keyStore=/abc3/esrt/der/fer-def2/esrt-deghasdf-keystore.jks

3 个答案:

答案 0 :(得分:2)

无需外部工具。 ksh可以完成这项工作

$ var="abcdefgh 7369 4825 0 00:12:26 pts/10 0:37 java -Djavax.net.ssl.keyStore=/abc3/esrt/der/fer-def2/esrt-deghasdf-keystore.jks"

$ echo ${var##*/}
esrt-deghasdf-keystore.jks

$ var=${var##*/}
$ echo ${var%.*}

答案 1 :(得分:1)

这取决于线的格式。如果你的所有行都以/path/to/file.ext格式结束,你可以这样做:

echo $line | sed -e 's@.*/@@g' -e 's@\.[^.]*$@@g'

但实际上,这取决于您的线条的格式以及您想要的内容。

答案 2 :(得分:1)

使用cut cut to sed。 (有些像cut -f 7 | sed blah)

抱歉,我不记得究竟如何使用它们。

请参阅联机帮助页:cutsed