Bash:根据一些分隔符分割字符串,并将每个分隔符存储在一个变量中


1130500500/CS101/mysql_java.pdf

上面是我的字符串,它存储在变量"行"中

line="113050050/CS101/mysql_java.pdf"

现在我想根据分隔符/拆分$line,并将每个单独的部分存储在变量中

var1=113050050
var2=CS101
var3=mysql_java.pdf
$ IFS=/ read var1 var2 var3 <<< "$line"

结果

$ echo $var1
113050050
$ echo $var2
CS101
$ echo $var3
mysql_java.pdf

这可能对您有用:

line="113050050/CS101/mysql_java.pdf"
var=(${line//// })
var1=${var[0]}
var2=${var[1]}
var3=${var[2]}

正如@chepner指出的那样,如果$line变量中存在空格,这将失败,一个可能更为防弹的解决方案是使用IFS变量:

line="113050050/CS101/mysql_java.pdf" O="$IFS" IFS='/' var=($line) IFS="$O"

最新更新