我有几个字符串(或目录中的文件名),我需要按第二种最常见的模式对它们进行分组,然后我将按每个组迭代它们并处理它们.在下面的示例中,我需要Accept中的2和Basic_Regis中的2,基本上是从字符串开始到连字符(-)和it could be any character and not just digit之后的一个字符.第一种最常见的模式是Accept和Basic_Regis.我正在寻找使用grep-Po(Perl和Only-Match)的第二常见模式.AWK解决方案正在发挥作用
输入
ACCEPT-zABC-0123
ACCEPT-zBAC-0231
接受-1ABC-0120
接受-1CBA-0321
BASIC_REGIS-2ABC-9043
BASIC_REGIS-2CBA-8132
BASIC_REGIS-PCCA-6532
BASIC_REGIS-PBBC-3023
输出量
ACCEPT-z
接受-1
BASIC_REGIS-2
BASIC_REGIS-P
echo "ACCEPT-0ABC-0123"|grep -Po "\K^A.*-"
结果:Accept-0ABC-
但我需要:接受-0
不过,awk解决方案正在发挥作用
echo "接受-1ABC-0120"|awk '$0 ~ /^A/{print substr($0,1,index($0,"-")+1)}'
接受-1