0

这是我的问题:

A) 我是一个脚本新手

B)我有一个文件,我需要将数据分成 CSV 样式表,我的问题是有三个数据区域(见下文):

(Area 1, not relevant) Total IPv4 packets captured: 2245686
# L4 Protocol   # Packets   Relative Frequency[%]   Protocol description

1   5602       0.249456 Internet Control Message Protocol 
.... (more data here)

(Area 2, relevant) Total TCP packets: 2238186
# Port  # Packets   Relative Frequency[%]   Protocol description

22  2138555   95.548583 The Secure Shell (SSH) Protocol
.... (more data here)

(Area 3, relevant) Total UDP packets: 1623
# Port  # Packets   Relative Frequency[%]   Protocol description

.... (more data here)

(Area 4, relevant) Total SCP packets: 0
# Port  # Packets   Relative Frequency[%]   Protocol description

.... (more data here)

(这是一个 Tranalyzer _protocols 输出)

所以我需要做的是使输出看起来像:

# Port,# Packets,Relative Frequency[%],Protocol description
22,2138555,95.548583,The Secure Shell (SSH) Protocol,(more data...)

但我还需要从每个区域获取数据并将其放入单独的 CSV 文件(TCP、UDP、SCP)中,以便对于我放入表中的所有流(每个流位于不同子目录中的不同 _protocols 文件中),数据可以进入这 3 个文件中的一个并构建一个会破坏内存的电子表格(因此为什么要使用 CSV。)

我也完全愿意以任何其他方式来代表任何人都可以提出的建议。

非常感激!

4

1 回答 1

1

以下命令将提取数据文件并将其转换为 csv。
更改x为 TCP、UDP 或 SCP 以提取特定数据集。
在执行之前更改<analyzer_output.txt>为正确的文件名。

x="SCP"; \
cat <analyzer_output.txt> | sed "1,/^Total $x/d; /^Total /,\$d; /^\s*$/d" | \
sed 's/\([0-9]\)\s\+\([0-9]\)/\1,\2/g; s/\([0-9]\)\s\+\([A-Za-z]\)/\1,\2/g' \
> $x.csv

生成以下示例数据的 SCP.csv 文件

41,2138555,95.548583,The Secure Shell (SSH) Protocol
42,2138555,95.548583,The Secure Shell (SSH) Protocol

样本数据文件

Total IPv4 packets captured: 2245686
1   5602       0.249456 Internet Control Message Protocol
2   5602       0.249456 Internet Control Message Protocol

Total TCP packets: 2238186
21  2138555   95.548583 The Secure Shell (SSH) Protocol
22  2138555   95.548583 The Secure Shell (SSH) Protocol

Total UDP packets: 1623
31  2138555   95.548583 The Secure Shell (SSH) Protocol
32  2138555   95.548583 The Secure Shell (SSH) Protocol

Total SCP packets: 0
41  2138555   95.548583 The Secure Shell (SSH) Protocol
42  2138555   95.548583 The Secure Shell (SSH) Protocol
于 2013-08-15T16:45:02.840 回答