在awk中,我试图找到一个由连字符和零对多字符组成的字符串。我正在使用波浪号运算符进行比较,并希望根据模式返回正确的字段
/[-][a-zA-Z]*/
测试:
echo "test -abc" | awk '{for (i=0; i<=NF; i++){if ($i ~ /[-][a-zA-Z]*/){print $(i+1);exit}}}'
它一直在回归“测试”。
任何帮助将不胜感激。
答案 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/^[^-]*-/-/'