Bash awk-波浪线操作符和连字符。以下测试未按预期进行评估

Bash awk-波浪线操作符和连字符。以下测试未按预期进行评估,bash,awk,Bash,Awk,在awk中,我试图找到一个由连字符和零到多个字符组成的字符串。我正在使用tilde操作符进行比较,并希望根据模式返回正确的字段 /[-][a-zA-Z]*/ 测试: echo "test -abc" | awk '{for (i=0; i<=NF; i++){if ($i ~ /[-][a-zA-Z]*/){print $(i+1);exit}}}' 这是一个持续的回归测试 任何帮助都将不胜感激 sed解决方案怎么样 这给了你 -korn -bash -tsh 格雷普替代方案

在awk中,我试图找到一个由连字符和零到多个字符组成的字符串。我正在使用tilde操作符进行比较,并希望根据模式返回正确的字段

/[-][a-zA-Z]*/
测试:

echo "test -abc" | awk '{for (i=0; i<=NF; i++){if ($i ~   /[-][a-zA-Z]*/){print $(i+1);exit}}}'
这是一个持续的回归测试

任何帮助都将不胜感激

sed解决方案怎么样

这给了你

-korn -bash -tsh 
格雷普替代方案

echo "apple -korn -bash  orange strawbery -tsh" | grep -o '[-][a-zA-Z]*' | xargs

-korn -bash -tsh

$0不是整个输入行吗?将起始索引从0更改为1,并进行测试,直到感谢@karakfa这是正确的方向。i=1;i@sysam,更干净。我是个新手,一开始就把事情解决了。谢谢
echo "apple -korn -bash  orange strawbery -tsh" | grep -o '[-][a-zA-Z]*' | xargs

-korn -bash -tsh