Разделение строки, не работающей

Я пытаюсь разделить строку, но существует что-то не так. Если кто-либо мог бы советовать.

echo -e "\e[41m## i = $i ##\e[0m"   
str1=$i | cut -d'/' -f1
echo -e "\e[41m## str1 = $str1 ##\e[0m"

и это - вывод:

## i = 1000/1.0, ##
## str1 =  ##
1
задан 12 March 2015 в 01:09

2 ответа

Я решил его с помощью этого:

str1=$(echo $i | cut -f1 -d'/')
0
ответ дан 10 November 2019 в 10:56

При использовании удара нет никакой потребности вызвать внешнюю команду такой как cut для этого: можно использовать встроенные функции расширения параметра оболочки.

, Например, чтобы удалить самую длинную запаздывающую строку, запускающуюся с / от переменной str='1000/1.0' и присвоить результат переменной str1

str1="${str%%/*}"

Так

$ str='1000/1.0'
$ str1="${str%/*}"
$ echo "$str1"
1000

, Посмотрите превосходное BashFAQ/073

2
ответ дан 10 November 2019 в 10:56

Другие вопросы по тегам:

Похожие вопросы: