awk - 代码运算符和连字符。以下测试未按预期进行评估

时间:2017-04-21 17:12:21

标签: bash awk

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

/[-][a-zA-Z]*/

测试:

echo "test -abc" | awk '{for (i=0; i<=NF; i++){if ($i ~   /[-][a-zA-Z]*/){print $(i+1);exit}}}'

它一直在回归“测试”。

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:1)

grep替代

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

-korn -bash -tsh

答案 1 :(得分:0)

vm_call_user_func()解决方案

怎么样?
sed

给你

echo "apple -korn -bash  orange strawbery -tsh  " |
sed -E 's/[[:blank:]]{1,}[^-]*[[:blank:]]{1,}/ /g;s/^[^-]*-/-/'