我想创建一个循环,它将输入 10行输出文件并将其输出到输出文件。并继续在输出文件中添加行而不是写入。
这是一个示例数据:
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
然后,我使用它来计算每个唯一文件,并显示每个文件的数量:
cut -f 4 input.txt|sort| uniq -c | awk '{print $2, $1}' | sed 1d
所以最终我只需要帮助制作一个可以运行该行bash的循环,并一次输出10行数据到输出文件
答案 0 :(得分:1)
如果我理解正确的话,对于每10行的一行,你正试图:
这是一个可以执行此操作的AWK脚本:
FNR % 10 != 1 {
++count[$4]
}
FNR % 10 == 0 {
for (i in count) {
print i, count[i]
delete count[i]
}
}
FNR % 10 != 1
块处理每一行,但行1,11,21,... AKA要跳过的行。该块保持字段数$ 4 FNR % 10 == 0
块打印出该块的摘要并重置(通过删除)计数FNR % 10 == 0
替换为END
。