Bash:基于某些分隔符拆分字符串并将每个分隔符存储在变量中

时间:2013-04-18 05:12:58

标签: bash shell scripting sed awk

113050050/CS101/mysql_java.pdf

以上是我的字符串,存储在变量'line'

line="113050050/CS101/mysql_java.pdf"

现在我想基于分隔符$line拆分/并将每个部分存储在变量中

var1=113050050
var2=CS101
var3=mysql_java.pdf

2 个答案:

答案 0 :(得分:7)

$ IFS=/ read var1 var2 var3 <<< "$line"

结果

$ echo $var1
113050050

$ echo $var2
CS101

$ echo $var3
mysql_java.pdf

答案 1 :(得分:1)

这可能对您有用:

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"