Domanda

Ho bisogno di ottenere il basnename del file (ESRT-deghasdf-chiavi) prima .jks. Voglio farlo utilizzando shellscript. E 'possibile?

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
È stato utile?

Soluzione

E 'dipende dal formato della linea. Se voi le linee sono tutti andando a finire in formato /path/to/file.ext, si può fare:

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

, ma in realtà, dipende da come esattamente le linee sono formattati e ciò che si desidera fuori di esso.

Altri suggerimenti

senza bisogno di strumenti esterni. ksh può fare il lavoro

$ 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%.*}

Usa taglio convogliato a sed. (Qualche cosa come cut -f 7 | bla sed)

Ci dispiace non mi ricordo esattamente come utilizzare entrambi.

Si vedano le pagine di manuale: tagliato e sed

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top