2014-01-17 104 views
-2

我有一個列表(從數組值),其看起來像這樣返回後字符串:只有圖案/關鍵詞

order_reply1={order_tag=1286955 
order_reply2={order_tag=1286956 
order_reply3={order_tag=1286957 
order_reply4={order_tag=1286958 
order_reply5={order_tag=1286959 
order_reply6={order_tag=1286960 
order_reply7={order_tag=1286961 

由此,我想返回後order_tag =的值。我怎麼能這樣做呢?在這個「關鍵字」之前,我不需要任何東西。原因是我希望返回的標籤保持與這些引用查詢數據庫。

+3

有幾種在Perl中完成這些的方法,你已經嘗試了哪些代碼?你卡在哪裏? –

回答

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

my @list = (
'order_reply1={order_tag=1286955', 
'order_reply2={order_tag=1286956', 
'order_reply3={order_tag=1286957', 
'order_reply4={order_tag=1286958', 
'order_reply5={order_tag=1286959', 
'order_reply6={order_tag=1286960', 
'order_reply7={order_tag=1286961', 
); 

s/.*order_tag=// for @list; 
# @list now contains only the tag values 
print join("\n",@list); 
0
sed 's/.*order_tag=//' YourFile 
# -> 1286961 

sed 's/.*\(order_tag=\)/\1/' YourFile 
# -> order_tag=1286961 
+0

謝謝這就是我需要的! – user3206886

0

grep的是正確的工具:

kent$ grep -Po '.*order_tag=\K.*' f 
1286955 
1286956 
1286957 
1286958 
1286959 
1286960 
1286961 
0

在路上出了門,但是,在這裏與在=性格分裂的另一種方式:

perl -e '$o=q(order_reply1={order_tag=1286955); $n=(split /=/, $o)[-1]; print "o= $o\n"'