假设我有一个以下格式的字符串:
(x1,y1,z1) (x2,y2,z2) (x3,y3,z3)
-99< = xi
,yi
,zi
< = 99
获取x1
和y1
的最简单方法是什么?
我尝试了以下哪个有效,但我认为我的方法不够优雅。
string="(x1,y1,z1) (x2,y2,z2) (x3,y3,z3)"
x1=( $(echo $string | cut -d"," -f1 | cut -d"(" -f2) )
答案 0 :(得分:3)
echo '(x1,y1,z1) (x2,y2,z2) (x3,y3,z3)' | awk -F'[(,]' '{print $2, $3}'
答案 1 :(得分:2)
不需要awk或任何其他工具,bash可以处理它:
string='(x1,y1,z1) (x2,y2,z2) (x3,y3,z3)'
IFS=',(' read _ x1 y1 _ <<< "$string"
echo "$x1" # prints x1
echo "$y1" # prints y1