это не работает. Я уже использовал это. это говорит, что команда не найдена.
Surbhi
3
@surbhi Что говорит команда не найдена? cutэто стандартная утилита. Возможно, ваш скрипт содержит ошибку где-то еще. В целом, никогда не говорите «это не работает». Всегда говорите, какой именно код вы выполняли, что именно произошло, и сообщения об ошибках копирования и вставки.
Жиль "ТАК - перестань быть злым"
Этот ответ следует принять, так как это самый лаконичный и прямой способ. Конечно, это не будет работать в случаях, которые являются более сложными, чем приведенный пример.
Дэн Нгуен
10
Оптимальный способ сделать это - использовать массив bash для разделения строки на пробелы. Вы можете объявить массив, просто используя скобки:
var="129 148 181"
vars=( $var )
echo "First word of var: '${vars[0]}'"
echo "Second word of var: '${vars[1]}'"
echo "Third word of var: '${vars[2]}'"
echo "Number of words in var: '${#vars[@]}'"
Это зависит от того, используете ли вы bash. Если вы используете другую оболочку, она может не работать. echo $SHELLдолжен показать: /bin/bashили аналогичный.
gogoud
не работает zsh; (
TonyH
Это делает работу в ZSHzoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};
echo "${var% *}" && echo "${var#* }"
...Ответы:
В дополнение к предложению jasonwryan вы можете использовать
cut
:Выше
cut
х годовecho
выход с космическим разделителем (-d ' '
) и выводит первое поле (-f1
)источник
cut
это стандартная утилита. Возможно, ваш скрипт содержит ошибку где-то еще. В целом, никогда не говорите «это не работает». Всегда говорите, какой именно код вы выполняли, что именно произошло, и сообщения об ошибках копирования и вставки.Оптимальный способ сделать это - использовать массив bash для разделения строки на пробелы. Вы можете объявить массив, просто используя скобки:
источник
echo $SHELL
должен показать:/bin/bash
или аналогичный.zsh
; (zoom="one two three"; declare -a zoomie=( $( echo $zoom | cut -d' ' -f1- ) ); echo ${zoomie[2]};