重复输出的AWK或GREP 1实例

时间:2015-03-26 18:49:27

标签: csv awk

所以我这里有一个来自cisco开关的输出,我需要捕获主机名并使用它来填充csv文件。 基本上我运行show mac address-table并拉取mac地址并将它们填充到csv文件中。我得到了但是我无法弄清楚如何获取主机名,以便我可以将它放在一个单独的列中。 我这样做了:

awk '/#/{print $1}'

但是会打印出包含'#'的每一行。我只需要1来填充一个变量,这样我就可以重新使用它了。最终结果需要如下所示:( CSV文件有MAC地址,端口号,主机名。我用逗号表示列分隔

    0011.2233.4455,Gi1/1,Switch1#
    0011.2233.4488,Gi1/2,Switch1#
    0011.2233.4499,Gi1/3,Switch1#

1 个答案:

答案 0 :(得分:0)

在不知道输入文件是什么样的情况下,所需的确切解决方案将是不确定的。但是,作为一个例子,给定一个输入文件,如请求的输出(我称之为switch.txt):

0011.2233.4455,Gi1/1,Switch1#
0011.2233.4488,Gi1/2,Switch1#
0011.2233.4499,Gi1/3,Switch1#
0011.2233.4455,Gi1/1,Switch3#
0011.2233.4488,Gi1/2,Switch2#
0011.2233.4498,Gi1/3,Switch3#

...可以从以下位置获取第一个字段(逗号分隔)的唯一值列表:

$ awk -F, '{print $1}' <switch.txt | sort | uniq
0011.2233.4455
0011.2233.4488
0011.2233.4498
0011.2233.4499

这样的方法可能有助于从实际输入文件中提取唯一值。