String 如何在bash(Unix)中将单词拆分为两个单词

String 如何在bash(Unix)中将单词拆分为两个单词,string,bash,unix,word,String,Bash,Unix,Word,我目前有: ${array[2]} = 1000($s3); 但我想把这个词分成两个词: 第一个是“1000” 第二个是's3美元 另一个是: 50000($s4) 1:50000 第二名:$s4 然后将它们存储为字符串 我如何做到这一点?您可以将read与自定义IFS一起使用: s='1000($s3)' IFS='()' read a b <<< "$s" echo -e "a=<$a>\nb=<$b>" a=<1000> b

我目前有:

${array[2]}   =  1000($s3);
但我想把这个词分成两个词:

第一个是“1000”

第二个是's3美元

另一个是:

50000($s4)
1:50000

第二名:$s4

然后将它们存储为字符串


我如何做到这一点?

您可以将
read
与自定义
IFS
一起使用:

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

echo -e "a=<$a>\nb=<$b>"
a=<1000>
b=<$s3>
s='1000($s3)'

如果在bash中读取b另一种方法是:

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%)
删除最后的
您可以使用Python、Perl、awk或sed还是仅使用Bash?