devo variabile:Come estrarre l'ultima parte della stringa in bash?
A="Some variable has value abc.123"
Ho bisogno di estrarre questo valore vale a dire abc.123
. E 'possibile in bash?
devo variabile:Come estrarre l'ultima parte della stringa in bash?
A="Some variable has value abc.123"
Ho bisogno di estrarre questo valore vale a dire abc.123
. E 'possibile in bash?
Come fai a sapere dove inizia il valore? Se è sempre le parole 5 e 6, è possibile utilizzare ad es .:
B=$(echo $A | cut -d ' ' -f 5-)
Questo utilizza il comando cut
per tagliare fuori parte della linea, utilizzando uno spazio semplice come la parola delimitatore.
Sì; questo:
A="Some variable has value abc.123"
echo "${A##* }"
stamperà questo:
abc.123
(Il ${parameter##word}
notazione è spiegato nel §3.5.3 "Shell Parameter Expansion" of the Bash Reference Manual.)
semplice è
echo $A | awk '{print $NF}'
Alcuni esempi utilizzando l'espansione di parametro
A="Some variable has value abc.123"
echo "${A##* }"
abc.123
Longest incontro su "" spazio
echo "${A% *}"
Some variable has value
più lungo match. dot
echo "${A%.*}"
Some variable has value abc
Shortest incontro su "" spazio
echo "${A%% *}"
some
Leggi tutto Shell-Parameter-Expansion
questa è la risposta migliore per la linea di comando, mi chiedo perché non è più popolare –