-3

我基本上需要想出一个正则表达式来给我下面列表中的所有 KB 数字。我想我需要去掉第一个 [ 然后用逗号分割,然后从每个分割中删除 [xx]: 。

有人能指出我正确的方向吗?我正在使用 perl 顺便说一句。

“已安装 194 个修补程序。,[01]:982861,[02]:KB2592687,[03]:KB2425227,[04]:KB2484033,[05]:KB2488113,[06]:KB2492386,[07]:KB2503665 ,[08]:KB2505438,[09]:KB2506014,[10]:KB2506212,[11]:KB2506928,[12]:KB2507618,[13]:KB2509553,[14]:KB2510531,[15]:KB2511250,[ 16]:KB2511455,[17]:KB2515325,[18]:KB2518869,[19]:KB2522422,[20]:KB2529073,[21]:KB2533552,[22]:KB2536275,[23]:KB2536276,[24] :KB2539635,[25]:KB2541014,[26]:KB2544893,[27]:KB2545698,[28]:KB2547666,[29]:KB2552343,[30]:KB2556532,[31]:KB2560656,[32]:KB256 ,[33]:KB2564958,[34]:KB2567680,[35]:KB2570947,[36]:KB2572077,[37]:KB2574819,[38]:KB2584146,[39]:KB2585542,[40]:KB2588516,[ 41]:KB2603229,[42]:KB2604115,[43]:KB2607047,[44]:KB2607576,[45]:KB2608658,[46]:KB2618444,[47]:KB2618451,[48]:KB2620704,[49] :KB2620712,[50]:KB2621146,[51]:KB2621440,[52]:KB2631813,[53]:KB2633873,[54]:KB2633952,[55]:KB2636573,[56]:KB2639308,[57]:KB2639417,[58]:KB2640148,[59]:KB2641653,[60]:KB2641690,[61 ]:KB2643719,[62]:KB2644615,[63]:KB2645640,[64]:KB2647516,[65]:KB2647518,[66]:KB2647753,[67]:KB2653956,[68]:KB2654428,[69]: KB2655992,[70]:KB2656356,[71]:KB2656373,[72]:KB2656411,[73]:KB2658846,[74]:KB2659262,[75]:KB2660075,[76]:KB2660465,[77]:KB26612 [78]:KB2665364,[79]:KB2667402,[80]:KB2675157,[81]:KB2676562,[82]:KB2677070,[83]:KB2679255,[84]:KB2685811,[85]:KB2685813,[86 ]:KB2685939,[87]:KB2686831,[88]:KB2688338,[89]:KB2690533,[90]:KB2691442,[91]:KB2695962,[92]:KB2698365,[93]:KB2699779,[94]: KB2699988,[95]:KB2705219,[96]:KB2709162,[97]:KB2709630,[98]:KB2709715,[99]:KB2709981,[100]:KB2712808,[101]:KB2718523,[102]:KB2718523,[102]:KB2718523 [103]:KB2719177,[104]:KB2719857,[105]:KB2719985,[106]:KB2722913,[107]:KB2724197,[108]:KB2726535,[109]:KB2729094,[110]:KB2729452,[111]:KB2731771,[112]:KB2731847,[113]:KB2732059,[1514]:KB27355 [115]:KB2736233,[116]:KB2736422,[117]:KB2739159,[118]:KB2741355,[119]:KB2742599,[120]:KB2743555,[121]:KB2744842,[122][125]:KB274965 ]:KB2750841,[124]:KB2753842,[125]:KB2756822,[126]:KB2756921,[127]:KB2757638,[128]:KB2758857,[129]:KB2761217,[130]:KB2761226,[1 KB2761451,[132]:KB2761465,[133]:KB2762895,[134]:KB2763523,[135]:KB2765809,[136]:KB2769369,[137]:KB2770660,[138]:KB2772930,[1439]:KB2772930,[1439] [140]:KB2778930,[141]:KB2779030,[142]:KB2779562,[143]:KB2785220,[144]:KB2786081,[145]:KB2786400,[146]:KB2789645,[147]:KB2790113 ]:KB2790655,[149]:KB2791765,[150]:KB2792100,[151]:KB2797052,[152]:KB2798162,[153]:KB2799494,[154]:KB2804579,[155]:KB2806748,[1KB2807986,[157]:KB2808679,[158]:KB2808735,[159]:KB2809289,[160]:KB2813170,[161]:KB2813347,[162]:KB2813430,[163]:KB2817183,[164]:KB2817183,[164] [165]:KB2820331,[166]:KB2823324,[167]:KB2830290,[168]:KB2832414,[169]:KB2833946,[170]:KB2834140,[171]:KB2834886,[172]:KB283536 ]:KB2836942,[174]:KB2836943,[175]:KB2839894,[176]:KB2840149,[177]:KB2840631,[178]:KB2844286,[179]:KB2849470,[180]:KB2850851,[1] KB2853587,[182]:KB2853952,[183]​​:KB2859537,[184]:KB2861855,[185]:KB2862772,[186]:KB2862966,[187]:KB2863058,[188]:KB2868116,[188]:KB2868116,[238]8 [190]:KB2870699,[191]:KB2872339,[192]:KB2876315,[193]:KB976902,[194]:KB982018"KB2832414,[169]:KB2833946,[170]:KB2834140,[171]:KB2834886,[172]:KB2835361,[173]:KB2836942,[174]:KB2836943,[175]:KB2839894,[176]:KB2839894,[176] [177]:KB2840631,[178]:KB2844286,[179]:KB2849470,[180]:KB2850851,[181]:KB2853587,[182]:KB2853952,[183]​​:KB2859537,[184]:KB286185 ]:KB2862772,[186]:KB2862966,[187]:KB2863058,[188]:KB2868116,[189]:KB2868623,[190]:KB2870699,[191]:KB2872339,[192]:KB2876315,[1 KB976902,[194]:KB982018"KB2832414,[169]:KB2833946,[170]:KB2834140,[171]:KB2834886,[172]:KB2835361,[173]:KB2836942,[174]:KB2836943,[175]:KB2839894,[176]:KB2839894,[176] [177]:KB2840631,[178]:KB2844286,[179]:KB2849470,[180]:KB2850851,[181]:KB2853587,[182]:KB2853952,[183]​​:KB2859537,[184]:KB286185 ]:KB2862772,[186]:KB2862966,[187]:KB2863058,[188]:KB2868116,[189]:KB2868623,[190]:KB2870699,[191]:KB2872339,[192]:KB2876315,[1 KB976902,[194]:KB982018"KB2876315,[193]:KB976902,[194]:KB982018"KB2876315,[193]:KB976902,[194]:KB982018"

4

2 回答 2

2

如果您不需要单线解决方案,这里是:

#!/usr/bin/perl
use warnings;
use strict;

my $t="194 Hotfix(s) Installed.,[01]: 982861,[02]: KB259245 ....";
my @numbers=$t=~/KB(\d+)/g;
print join("\n",@numbers);

请注意,第一个数字 [01] 不会与此正则表达式匹配,因为缺少 KB 前缀,我猜这是您帖子中的错字。否则将匹配的正则表达式更改为:

my @numbers=$t=~/(\d+)(?:\,|\z)/g;
于 2013-09-25T20:40:23.797 回答
1
perl -nE 'say join " ", /KB(\d+)/g"' file
于 2013-09-25T20:29:14.567 回答