Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 一次处理10行样本数据_Bash_File_Loops - Fatal编程技术网

Bash 一次处理10行样本数据

Bash 一次处理10行样本数据,bash,file,loops,Bash,File,Loops,我想做一个循环,将输入文件的10行输出到输出文件。并继续向输出文件添加行,而不是过度写入 这是一个示例数据: FilePath Filename Probability ClassifierID HectorFileType LibmagicFileType /mnt/Hector/Data/benign/binary/benign-pete/ 01d0cd964020a1f498c601f9801742c1 19 S040PDFv02 data.pdf P

我想做一个循环,将输入文件的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行数据输出到一个输出文件

如果我理解正确,对于每一个10行的块,您都在尝试:

  • 跳过块的第一行标题
  • 计算字段#4(ClassifierID)出现的次数并输出该字段,加上计数
  • 下面是一个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行。。。你想跳过的行。此块保留字段$4的计数
    • FNR%10==0
      块打印出该块的摘要,并重置(通过删除)计数
    • 我的脚本没有对字段进行排序,因此顺序可能不同
    • 如果要对整个文件进行计数,而不仅仅是10秒的块,则将
      FNR%10==0
      替换为
      END

    我要说的是,这不是一种抨击。这是一个执行大量外部命令的shell脚本。我不明白你在问什么——你是想一次处理样本数据中的10行,还是想一次缓冲10行管道,只在缓冲区中有10行时写入文件?谢谢你的更正,我想一次处理10行示例数据
    split-l10 infle
    ,然后分别处理每个splitfile。似乎您想消除头行,它出现在第1、11、21行。。。然后,进行一些处理,是否正确?当我尝试运行它时,会出现以下错误:awk 2script.awk awk:cmd。第1行:意外标记您是否尝试过
    awk-f 2script.awk
    ?不要忘记
    -f
    标志。