como dividir a string depois e antes do espaço no shell script?

8

Estou tendo uma variável que mostra um eco como esse

$ echo $var
129 148

Eu tenho que levar apenas 129 como saída. Como vou dividir 129 e 148?

    
por surbhi 19.03.2015 / 07:09

2 respostas

14

Além de sugestão de jasonwryan , você pode usar cut :

echo $var | cut -d' ' -f1

O cut s acima da saída echo com um delimitador de espaço ( -d ' ' ) e gera o primeiro campo ( -f1 )

    
por 19.03.2015 / 07:43
5

Uma maneira simples de fazer isso é usar um array bash para dividir uma string em espaços. Você pode declarar um array simplesmente usando colchetes:

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[@]}'"
    
por 19.03.2015 / 07:49

Tags