我们得到了一个名为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的新手,随时发表评论,以便提高我的提问技巧。
答案 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>