例如,我得到一个电话号码,如 9191234567
,我怎么能把它分成两部分,第一部分包含三个前导数字 919
,另一部分包含其余七位数字 1234567
?之后,我想将这两个部分存储到 ksh
中的两个不同变量中。
我不知道这是否可以用 sed
完成?
最佳答案
你可以试试这个:
echo "9191234567" | sed 's/^\([0-9]\{3\}\)\([0-9]\{7\}\)$/\1 \2/'
要将每个部分存储在单独的变量中,您可以这样做:
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/')
或者更简洁:
read part1 part2 <<< $(echo "9191234567" | sed 's/^\([0-9]\{3\}\)\([0-9]\{7\}\)$/\1 \2/')
关于sed - 如何将 10 位电话号码分成两部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16844708/