2017-03-29 11 views
0

ファイル内に格納されているWebサイトのルートCNの名前を次のように抽出する必要があります。シェルスクリプトを使用して行から複数​​の単語を抽出する方法

google.com CN=Google Internet Authority G2 
youtube.com CN=Google Internet Authority G2 

「Google Internet Authority G2」の行からこの部分を抽出し、ファイル内のオカレンスをカウントします。

私はこのコマンドを使用しようとしましたが、私はそれに使用される適切な正規表現を知らない。誰かが助けることができますか?

cat RootCertificates | tr -d '*CN=' | sort | uniq -c 

答えて

2

代わりにsedを使用できます。

sed 's/^.*CN=//' < RootCertificates | sort | .. 

もまた、try to avoid cat if you canである。この場合、sedの入力をファイルからリダイレクトできます。

+0

あなたが途中で 'G'グローバルフラグを必要としないを使用して、正規表現の定義は、'^'アンカーのおかげで一つのことを一致します。それでも良い答えです。 – paxdiablo

0

あなたがすべての行にCN=を持つことが保証されている場合は、簡単なcutは十分であろうと、正規表現の必要がない:

cut -f2 -d= RootCertificates | sort | uniq -c 

あなたのファイルの場合、出力は次のようになります。

2 Google Internet Authority G2 
0

たぶんgrep

grep -o 'CN=.*' file | sort | uniq -c 
    2 CN=Google Internet Authority G2 

またはあなたがしたくない場合はCNは、あなたの入力

cut -d "=" -f2 file | sort | uniq -c 
2 Google Internet Authority G2 
関連する問題