我有以下列格式的管道分隔日誌文件:Perl腳本配置grep的輸出
<date> <time> | <fruit> | <color> | <num_1> | <num_2> | <num_3>
因此,例如:
2013-03-27 23:01:52 | apple | green | 55 | 120 | 29
2013-03-27 23:01:56 | plumb | purple | 28 | 1 | 394
2013-03-27 23:01:59 | apple | red | 553 | 21 | 7822
我想編寫一個Perl腳本(儘管python或bash也是可以接受的),根據您給腳本的輸入,greps
列出<date>
和<time>
字段(列1)和<num_1>
,<num_2>
或<num_3>
。因此,上述信息運行perl extract.pl 2
會給你<date>
,<time>
和<num_2>
:
2013-03-27 23:01:52 | 120
2013-03-27 23:01:56 | 1
2013-03-27 23:01:59 | 21
我嘗試以下,但它似乎並沒有工作:
#!/usr/bin/perl
use warnings;
use strict;
my $col = $1;
print `grep "myapplog.txt" "m/_(\d{4})(\d\d)(\d\d)/ | $col"`
在這裏,我設置col
var到腳本的第一個參數,然後嘗試打印匹配第一列的日期時間和期望<num_X>
列的grep。有任何想法嗎?提前致謝。
'$ 1'不是腳本的第一個參數。那將是'$ ARGV [0]'。 「$ 1」是第一個正則表達式捕獲緩衝區的內容。 – 2013-04-03 20:05:44