如何使用shell脚本从一行中提取多个单词

时间:2017-03-29 00:51:03

标签: shell command

我需要提取存储在文件中的网站的CN的名称,如下所示。

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

我想从第34行开始提取这部分内容" Google Internet Authority G2"并计算文件中的出现次数。

我尝试使用此命令,但我不知道要使用它的正确正则表达式。有人可以帮忙吗?

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

3 个答案:

答案 0 :(得分:2)

您可以改为使用sed

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

..也是,try to avoid cat if you can。在这种情况下,您可以从文件中重定向sed的输入。

答案 1 :(得分:0)

如果您保证每行都有CN=,那么简单的cut就足够了,而且不需要正则表达式:

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

对于您的文件,输出为:

  2 Google Internet Authority G2

答案 2 :(得分:0)

也许MyPageBean

grep

或者如果您不希望 grep -o 'CN=.*' file | sort | uniq -c 2 CN=Google Internet Authority G2 使用您的输入

CN