如何将10位电话号码分成两部分

Qia*_* Xu 4 ksh sed

例如,我得到一个电话号码9191234567,我怎么能把它分成两部分,第一部分包含三个前导数字919,另一部分包含其余七个数字1234567?之后,我想将这两个部分存储到两个不同的变量中ksh.

我不知道是否可以这样做sed

Eri*_*ire 7

你可以试试这个:

echo "9191234567" | sed 's/^\([0-9]\{3\}\)\([0-9]\{7\}\)$/\1 \2/'
Run Code Online (Sandbox Code Playgroud)

要将每个部分存储在单独的变量中,您可以这样做:

phone="9191234567"
part1=$(echo $phone | sed 's/^\([0-9]\{3\}\)[0-9]\{7\}$/\1/')
part2=$(echo $phone | sed 's/^[0-9]\{3\}\([0-9]\{7\}\)$/\1/')
Run Code Online (Sandbox Code Playgroud)

或者更简洁:

read part1 part2 <<< $(echo "9191234567" | sed 's/^\([0-9]\{3\}\)\([0-9]\{7\}\)$/\1 \2/')
Run Code Online (Sandbox Code Playgroud)


iru*_*var 5

cut 应该管用

echo '9191234567' | cut --characters 1-3,4- --output-delimiter ' '
919 1234567
Run Code Online (Sandbox Code Playgroud)