mam zmienna:Jak wyodrębnić ostatnią część łańcucha w bash?
A="Some variable has value abc.123"
muszę wyodrębnić tę wartość tj abc.123
. Czy to możliwe w bash?
mam zmienna:Jak wyodrębnić ostatnią część łańcucha w bash?
A="Some variable has value abc.123"
muszę wyodrębnić tę wartość tj abc.123
. Czy to możliwe w bash?
Skąd wiadomo, gdzie zaczyna się wartość? Jeśli jest to zawsze 5 i 6 wyrazy, można użyć np .:
B=$(echo $A | cut -d ' ' -f 5-)
używa komendy cut
pokroić na części linii, za pomocą prostego przestrzeń jako separatora słów.
Tak; następująco:
A="Some variable has value abc.123"
echo "${A##* }"
drukuje następująco:
abc.123
(Zapis ${parameter##word}
wyjaśniono §3.5.3 "Shell Parameter Expansion" of the Bash Reference Manual).
Najprościej
echo $A | awk '{print $NF}'
Niektóre przykłady wykorzystujące rozszerzenie parametru
A="Some variable has value abc.123"
echo "${A##* }"
abc.123
Najdłuższy mecz na "" przestrzeni
echo "${A% *}"
Some variable has value
Najdłuższy mecz dalej. dot
echo "${A%.*}"
Some variable has value abc
Najkrótsza spotkanie na „” przestrzeni
echo "${A%% *}"
some
Czytaj więcej Shell-Parameter-Expansion
to najlepsza odpowiedź na linii poleceń, zastanawiam się, dlaczego nie jest bardziej popularny –