【问题标题】:pipe output of gzip into csplitgzip 的管道输出到 csplit
【发布时间】:2020-01-22 07:12:19
【问题描述】:

此命令有效:

csplit really_big_file.txt -f ../dump/really_big_file_ /^H\|756\|/ {*}

但是这个命令:

gzip -dc  really_big_file.txt.gz | csplit -f ../dump/really_big_file_ /^H\|756\|/ {*}

产量:

csplit: cannot open '/^H|756|/' for reading: No such file or directory

如何将 gzip 的输出通过管道传输到 csplit?

【问题讨论】:

    标签: unix pipe csplit


    【解决方案1】:

    man csplit 中它说文件总是在模式之前:

    概要

       csplit [OPTION]... FILE PATTERN...
    

    应该是这样的:

    gzip -dc  really_big_file.txt.gz | csplit -f ../dump/really_big_file_ - /^H\|756\|/ {*}
    

    例子:

    $ gzip -dc inputfile.txt.gz
    abc
    searchstring
    def
    searchstring
    egh
    searchstring
    $ mkdir split
    $ gzip -dc inputfile.txt.gz | csplit  -f split/file - /searchstring/ {*}
    $ ls -Al split/
    total 16
    -rw-r--r-- 1 ja users  4 Sep 21 17:53 file00
    -rw-r--r-- 1 ja users 17 Sep 21 17:53 file01
    -rw-r--r-- 1 ja users 17 Sep 21 17:53 file02
    -rw-r--r-- 1 ja users 13 Sep 21 17:53 file03
    $ cat split/*
    abc
    searchstring
    def
    searchstring
    egh
    searchstring
    

    【讨论】:

    • 抱歉,您在“应该是”之后的命令与我的问题中的命令完全相同。有错别字吗?
    • @user189035:是的,对不起,我忘了- 表示标准输入。
    猜你喜欢
    • 1970-01-01
    • 2021-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多