Dividindo uma string não está funcionando

1

Estou tentando dividir uma string, mas há algo errado. Se alguém poderia por favor avise.

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

e esta é a saída:

## i = 1000/1.0, ##
## str1 =  ##
    
por Tak 12.03.2015 / 03:15

2 respostas

0

Eu resolvi usando isso:

str1=$(echo $i | cut -f1 -d'/')
    
por Tak 12.03.2015 / 03:26
2

Se você estiver usando o bash, não há necessidade de invocar um comando externo como cut para isso: você pode usar as funções de expansão de parâmetros internas do shell.

Por exemplo, para remover a cadeia longa mais longa que começa com / da variável str='1000/1.0' e atribua o resultado à variável str1

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

Então

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

Veja o excelente BashFAQ / 073

    
por steeldriver 12.03.2015 / 04:02