如何使用shell脚本解释坐标?

时间:2017-06-24 15:55:00

标签: bash shell

我们得到了一个名为coords.txt的文件,其中列出了大量的坐标。我们想逐行阅读它们并对它们做些什么,但我们需要先设置x,y和z。

coords.txt:

objectReturned.name

shell.sh 编辑:

objectReturned.anotherObj.name

我们使用0, 0, 0 1, 1, 1 232, 434, 434 644, 322, 112

开始

看起来 coord_reader 存在问题,我只得到x的结果。

我是stackoverflow的新手,随时发表评论,以便提高我的提问技巧。

2 个答案:

答案 0 :(得分:1)

您的正则表达式仅匹配一位数字,并且您没有使用捕获组。 (另外,请确保coords.txt以换行符正确结束,这样您就不需要|| [[ -n $line ]]循环中的while黑客了。)

coord_reader='^([0-9]+), ([0-9]+), ([0-9]+)$'

答案 1 :(得分:0)

awk -F, '$0 ~ /^([[:digit:]]+),[[:space:]]([[:digit:]]+),[[:space:]]([[:digit:]]+).*$/ { print "x="$1" y="$2" z="$3 }' coords.txt

另一种选择是awk。我们模式匹配正则表达式。我注意到逗号前面还有一个空格(不确定这是否是故意的)如果模式匹配,则使用逗号分隔相对定位的字符串,用x =,y =,z =打印出字符串。 / p>