我有一个列表(数组中的值),如下所示:
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 =之后返回值。我该怎么做呢?在这个“关键字”之前我不想要任何东西。原因是我希望返回的标签继续使用这些引用查询数据库。
答案 0 :(得分:0)
sed 's/.*order_tag=//' YourFile
# -> 1286961
sed 's/.*\(order_tag=\)/\1/' YourFile
# -> order_tag=1286961
答案 1 :(得分: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);
答案 2 :(得分:0)
grep是正确的工具:
kent$ grep -Po '.*order_tag=\K.*' f
1286955
1286956
1286957
1286958
1286959
1286960
1286961
答案 3 :(得分:0)
在出门的路上,但这是另一种分裂=字符的方式:
perl -e '$o=q(order_reply1={order_tag=1286955); $n=(split /=/, $o)[-1]; print "o= $o\n"'