1

假设我有一个格式如下的字符串:

(x1,y1,z1) (x2,y2,z2) (x3,y3,z3)

-99 <= xi, yi, zi<= 99

获得x1and的最简单方法是什么y1

我尝试了以下方法,但我认为我的方法不够优雅。

string="(x1,y1,z1) (x2,y2,z2) (x3,y3,z3)"
x1=( $(echo $string | cut -d"," -f1 | cut -d"(" -f2) )
4

2 回答 2

3
echo '(x1,y1,z1) (x2,y2,z2) (x3,y3,z3)' | awk -F'[(,]' '{print $2, $3}'
于 2013-09-05T02:37:06.173 回答
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
于 2013-09-05T12:25:47.997 回答