使用grep分割字符串的Shell脚本

时间:2012-11-15 23:04:33

标签: regex string shell scripting grep

我的shell脚本中有一个变量

myVAR = "firstWord###secondWord"

我想用grep或其他工具分成两个变量,最终结果如下:

myFIRST = "firstWord"
mySECOND = "secondWord"

我该怎么做呢? #{3}是我想分开的。

4 个答案:

答案 0 :(得分:16)

使用sed代替:

echo $myvar | sed -E  's/(.*)#{3}(.*)/\1/'
>>> firstword

echo $myvar | sed -E  's/(.*)#{3}(.*)/\2/'
>>> secondword

# saving to variables
myFirst=$(echo $myvar | sed -E  's/(.*)#{3}(.*)/\1/')

mySecond=$(echo $myvar | sed -E  's/(.*)#{3}(.*)/\2/')

答案 1 :(得分:6)

最好的工具是

$ echo "firstWord###secondWord" | sed 's@###@\
@'
firstWord
secondWord

一个完整的例子:

$ read myFIRST mySECOND < <(echo "$myvar" | sed 's@###@ @')

$ echo $myFIRST 
firstWord

$ echo $mySECOND 
secondWord

答案 2 :(得分:2)

$ STR='firstWord###secondWord'
$ eval $(echo $STR | sed 's:^:V1=":; /###/ s::";V2=": ;s:$:":')
$ echo $V1
firstWord
$ echo $V2
secondWord

答案 3 :(得分:2)

这是我用zsh做的方式:

myVAR="firstWord###secondWord"
<<<$myvar sed 's/###/ /' | read myFIRST mySECOND