2015-03-17 2 views
0

я в настоящее время:Как разделить слова на два слова в Баш (Unix)

${array[2]} = 1000($s3); 

, но я хочу, чтобы разделить это слово на два слова:

1 является «1000»

второй является «$ s3

и другое одно:

50000($s4) 

первая: 50000

второй: $ s4

затем хранить их в виде строки

Как я могу это сделать?

+0

Можете ли вы использовать Python, Perl, awk или sed или только Bash? – dawg

ответ

2

Вы можете использовать read с пользовательскими IFS:

s='1000($s3)' 
IFS='()' read a b <<< "$s" 

echo -e "a=<$a>\nb=<$b>" 
a=<1000> 
b=<$s3> 
0

Другой способ сделать это в Баш:

for I in '1000($s3)' '50000($s4)' 
do 
    a="${I%(*}" 
    b="${I#*(}" 
    echo "1st=${a}, 2nd=${b%)}" 
done 

a="${I%(}" удаляет все от и включая ( до конца переменной. b="${I#(}" удаляет все до (. echo 2nd=${b%)} удаляет окончательный ).

Смежные вопросы