1

我需要在.jks 之前获取文件的基本名称(esrt-deghasdf-keystore)。我想用 shellscript 来做。是否可以?

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
4

3 回答 3

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%.*}
于 2010-02-09T07:27:40.070 回答
1

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

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

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

于 2010-02-09T07:17:46.817 回答
1

使用 cut piped 到 sed。(像 cut -f 7 | sed blah 之类的东西)

抱歉,我不记得到底如何使用两者。

参见手册页:cutsed

于 2010-02-09T07:18:45.833 回答