2010-02-09 89 views
1

我需要在.jks之前獲取文件的基本名(esrt-deghasdf-keystore)。我想用shellscript來做。可能嗎?shell腳本從字符串獲取文件名

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 

回答

1

這取決於行的格式。如果線路都將在/path/to/file.ext格式結束,你可以這樣做:

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

但實際上,這取決於究竟如何你行的格式,你想出來的東西。

1

使用切管道sed。 (有些東西像cut -f 7 | sed blah)

對不起,我不記得如何使用兩個。

參閱聯機幫助頁:cutsed

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

由於OP希望刪除擴展名:'file = $ {var ## * /}; base = $ {file%。*}' – 2010-02-09 07:38:48

+0

是的。我錯過了。謝謝 – ghostdog74 2010-02-09 08:07:06