处理数据之前:
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
。是可以做到的,最好的方法是什么?
答案 0 :(得分: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
}