1

さまざまなデバイスのエントリを含む構成ファイルがあり、各エントリは空白行で区切られています。特定のデバイス タイプのすべてのインスタンスのファイルを検索し、出現に続く非空白行の数を数え、最初の空白で停止する必要があります。

例えば:

Server=foo
設定行 1
設定行 2
設定行 3

Server=bar
構成行 1
構成行 2

Server=foo
設定行 1

サーバー「foo」に関連付けられている「構成行」の合計数を知りたい場合は、4 つ取得する必要があります。助けていただけますか?

私は AIX 5.3 を使用しています。pcregrep はありません。:( Grep、sed、および awk は、私がアクセスできるすべてです。

4

1 に答える 1

2

この単純なawkスクリプトは、必要な情報を教えてくれます。

#!/usr/bin/awk -f    

$1 ~ /^Server=/ {
    server = $1;
}

($0 != "") && ($1 !~ /^Server=/) {
    count[server] += 1
}

END {
    for (server in count) {
        print server, count[server]
    }
}

/ usr / bin/awkパスを自分のパスに一致するように調整する必要がある場合があります。このコードをcounterスクリプトに配置すると、次のように呼び出されます。

./counter < config

設定例として次のように出力されます。

Server=foo 4
Server=bar 2

行頭のServer=を削除する必要がある場合は、sedを介してパイプすることができます。

./counter < config | sed 's/^Server=//'
于 2010-08-06T13:31:25.423 に答える