-1

处理数据之前:

FilePath    Filename    Probability ClassifierID    HectorFileType  LibmagicFileType
/mnt/Hector/Data/benign/binary/benign-pete/ 01d0cd964020a1f498c601f9801742c1    19  S040PDFv02  data.pdf    PDF document
/mnt/Hector/Data/benign/binary/benign-pete/ 0299a1771587043b232f760cbedbb5b7    0   S040PDFv02  data.pdf    PDF document
/mnt/Hector/Data/benign/binary/benign-pete/ 02a3f29050abd76f8d5dbe5972dff932

运行下面的代码后(第一列是分类器,旁边是文件数):

S036GDLv02 1
S040PDFv02 218
S043GUIv02 11
S046CONv02 1

我想指定我希望它运行的代码行:

for i in input.txt;

do cut -f 4 input.txt|sort| uniq -c | awk '{print $2, $1}' | sed 1d >> output.txt; done

我想创建一个脚本,例如,我可以告诉它通过 10 行运行该代码并将其输出到文件output.txt中。那有可能吗?最好的方法是什么?

4

1 回答 1

2

当您说“通过十行”时,很难知道您的意思。您是想只计算 10 行 input.txt 中的条目,还是返回前十个条目。

这将返回文件中的前十个条目,按丰度排序。

# function to return the ten most common items in a file
# usage: topten input.txt  >> output.txt
topten(){
   cut -f 4 $@ | sort | uniq -c | sort -nr | awk '{print $2, $1}' | head -10
}

要指定要返回的条目数:

# function to return the N most common items in a file
# usage: topN input.txt 20 >> output.txt
topN(){
   cut -f 4 $1 | sort | uniq -c | sort -nr | awk '{print $2, $1}' | head -$2
}
于 2013-08-20T17:42:42.210 回答