2010-10-04 41 views
1

我試圖從短bash腳本中的特定配置文件中獲取一些別名。配置看起來像:通過正則表達式從配置中獲取別名(錯誤分隔)

[other config] 

[alias] 
alias: command -o option 
alias2: command -l 2 
alias3: command -o option 

[other config] 

你會如何得到這些別名分開?我寧願這樣的輸出:

alias: command -o option 
alias2: command -l 2 
alias3: command -o option 

我已經做了一些不好的東西,喜歡把自己的行號等等... 什麼想法嗎?會很好!

回答

0

你可以做到這一點使用SED:

sed -n -e '/\[alias\]/,/\[.*\]/s/:/:/p' 

這將打印[alias]和下一行之間的所有行包含[]在他們身上有一個冒號。

+0

這個作品真棒!非常感謝你! – noqqe 2010-10-04 20:05:49

0

Perl有一個Config::GitLike模塊,可以派上用場解析該git配置文件。

望着文檔,你想做的事:

#!perl -w 

use strict; 
use 5.010; 
use Config::GitLike; 

my $c = Config::GitLike->new(confname => 'config'); 
$c->load; 

my $alias = $c->get(key => 'alias.alias'); 
my $alias2 = $c->get(key => 'alias.alias2'); 
my $alias3 = $c->get(key => 'alias.alias3'); 

say "alias: $alias"; 
say "alias2: $alias2"; 
say "alias3: $alias3"; 
+0

謝謝CanSpice!我必須在我的bash腳本中解決這個問題並尋找一些正則表達式字符串。也許我可以使用config :: gitlike來學習如何獲得這些正則表達式字符串:) – noqqe 2010-10-04 19:37:38