30 Perl 指令碼實戰 confgrep

2021-09-23 10:31:25 字數 3592 閱讀 9871

confgrep 命令類似於confview, confgrep 主要用於篩選配置檔案中攜帶關鍵字的行的資訊。 主要特性:

$ confgrep redis.conf.7481 memory port

[13] port 7481

[43] maxmemory 2gb

[46] maxmemory-policy noeviction

-a 選項會篩選包括注釋行在內的資訊

$ confgrep -a /usr/local/etc/redis/redis.conf.7481 ip

[6 ] # 修改繫結ip

effective lines: 1; total lines: 60

#!/usr/bin/perl

#desc 提取配置檔案中行內容

#auth zonggf

#date 2016-12-30

use warnings;

use term:

:ansicolor qw(:constants)

;$term::ansicolor::autoreset=1

;#檢查是否是查詢幫助

sub check_help

elsif

("-a"

eq$param)}

#desc 輸出有顏色的字串

#para1 接收至少兩個引數以上,第乙個引數為要格式化的字串,之後的引數為要使用顏色的字串

sub print_color()

#獲取要格式化顏色的字串

my$line

= shift @_

;#獲取要高亮的字串陣列

my@patterns=@_

;#獲取要高亮顯示的字串陣列,拼接正則模式

my$spectors

=(shift @_).

'+';

foreach(@_

)#按正則模式進行分組

my@arrays

= split(

/($spectors)/

,$line);

#輸出結果

formy

$item

(@arrays

)else}}

#格式化索引長度

#引數: 接收兩個引數

# para1: 需要格式化的索引

# para2: 陣列長度

#返回: [1 ]

sub fmt_idx

s] "

,$str;}

#################### 主程式 ####################

#校驗幫助

&check_help

;#配置檔案名稱

$file_name

= shift @ar**

;#拼接引數

@patterns

=@ar**

;$pattern

= shift @ar**

;foreach

(@ar**

)#讀取檔案內容,獲取檔案行數

open $f_cfg

,"<"

,$file_name

ordie

"[錯誤] $file_name not exists !!\n"

;@lines

=<

$f_cfg

>

;$lines_length

=@lines

;#遍歷檔案內容

$rs_cnt=0

;for

$idx(1

..@lines)}

#列印配置檔案總行數

print bold cyan "\neffective lines: $rs_cnt; total lines: $lines_length\n"

;#關閉檔案流

close $f_cfg

;```#!/usr/bin/perl

#desc 提取配置檔案中行內容

#auth zonggf

#date 2016-12-30

use warnings;

use term:

:ansicolor qw(:constants)

;$term::ansicolor::autoreset=1

;#檢查是否是查詢幫助

sub check_help

elsif

("-a"

eq$param)}

#desc 輸出有顏色的字串

#para1 接收至少兩個引數以上,第乙個引數為要格式化的字串,之後的引數為要使用顏色的字串

sub print_color()

#獲取要格式化顏色的字串

my$line

= shift @_

;#獲取要高亮的字串陣列

my@patterns=@_

;#獲取要高亮顯示的字串陣列,拼接正則模式

my$spectors

=(shift @_).

'+';

foreach(@_

)#按正則模式進行分組

my@arrays

= split(

/($spectors)/

,$line);

#輸出結果

formy

$item

(@arrays

)else}}

#格式化索引長度

#引數: 接收兩個引數

# para1: 需要格式化的索引

# para2: 陣列長度

#返回: [1 ]

sub fmt_idx

s] "

,$str;}

#################### 主程式 ####################

#校驗幫助

&check_help

;#配置檔案名稱

$file_name

= shift @ar**

;#拼接引數

@patterns

=@ar**

;$pattern

= shift @ar**

;foreach

(@ar**

)#讀取檔案內容,獲取檔案行數

open $f_cfg

,"<"

,$file_name

ordie

"[錯誤] $file_name not exists !!\n"

;@lines

=<

$f_cfg

>

;$lines_length

=@lines

;#遍歷檔案內容

$rs_cnt=0

;for

$idx(1

..@lines)}

#列印配置檔案總行數

print bold cyan "\neffective lines: $rs_cnt; total lines: $lines_length\n"

;#關閉檔案流

close $f_cfg

;

oracle資料庫匯出匯入 perl指令碼實現

匯出oracle資料庫 usr bin perl w set nls lang american america.al32utf8 my aa exp system dbname file d daochu.dmp owner cm foreach aa print print oracle dat...

perl 測試指令碼

修改日期 2010年01月09日 1.系統環境 系統版本 fedora6 x86 64 db2版本 db2 v9.5.0.3 perl版本 v5.8.8 系統自帶 perl dbi版本 perl dbi 1.52 1.fc6 系統自帶 dbd db2版本 dbd db2 1.76 2.安裝dbd d...

perl指令碼練習

題目 12 34 56 78 24 65 87 90 76 11 67 87 100 89 78 99 求出文字中數字的最大 小值 我看很多的朋友都用shell的awk實現了,但本人對awk不是很了解,試著用perl簡單的寫了一下,也能實現 code usr bin perl w use stric...