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

JDS*_*JDS 8 regex string shell scripting grep

我在表单的shell脚本中有一个变量

myVAR = "firstWord###secondWord"
Run Code Online (Sandbox Code Playgroud)

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

myFIRST = "firstWord"
mySECOND = "secondWord"
Run Code Online (Sandbox Code Playgroud)

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

Chr*_*our 17

使用替换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/')
Run Code Online (Sandbox Code Playgroud)


Gil*_*not 6

最好的工具是:

$ echo "firstWord###secondWord" | sed 's@###@\
@'
firstWord
secondWord
Run Code Online (Sandbox Code Playgroud)

一个完整的例子:

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

$ echo $myFIRST 
firstWord

$ echo $mySECOND 
secondWord
Run Code Online (Sandbox Code Playgroud)