【问题标题】:Bash splitting a large gzipped fileBash 拆分一个大的 gzip 文件
【发布时间】:2017-07-25 06:14:20
【问题描述】:

我最近一直在处理一些文件处理,我正在尝试编写一个 bash 单行器,它看起来像:

zcat largefile.gz | split_by_delimiter_into_separate_files

我尝试过的事情:

zcat largefile.gz | awk '{print $0 " //"> "separate_file" NR}' RS='//'  

我试图拆分的分隔符是“//”。我知道像 python 这样的东西可能可以用几行来解决这个问题,但我的项目不是基于 python 的,因此这不是一个选项..

【问题讨论】:

    标签: bash awk split


    【解决方案1】:

    试试这样:

    zcat largefile.gz | awk -vRS='//' '{print $0 " //"> "separate_file" NR}'
    

    【讨论】:

    • 太棒了,非常感谢!为什么这行得通?
    • 你错误的设置变量。我使用命令行标志-v 来设置它。或者你可以这样做:awk 'BEGIN{RS="//"} {print $0 " //"> "separate_file" NR}'。块 BEGIN{} 将在脚本开始时运行一次。
    【解决方案2】:

    您可以使用split,我相信这正是您所需要的:

    zcat largefile.gz | split -p '//' - separate_file_
    

    将创建以separate_file_为前缀的文件,内容为large file,在//上拆分

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-05
      • 1970-01-01
      • 2011-02-02
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      相关资源
      最近更新 更多