unix - gzip 的管道输出到 csplit
问题描述
此命令有效:
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?
解决方案
其中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
推荐阅读
- android-studio - 为什么当我尝试从 android studio 终端拉取时,Github 总是要求提供登录凭据?
- docker - 如何将 exitCode 从程序传递到 Docker 容器?
- python - 如何为 CSV 文件添加标题
- python - 检测小图像中斑点的位置
- flutter - 我在某些小部件中遇到 stackoverflowerror,但我不知道为什么以及这个错误是什么
- vue.js - 重置密码链接Laravel 8中的动态域
- julia - Models.Fitting 类型故障
- c# - Xamarin 表单项目从框架中获取不正确的本机数字
- elisp - 我需要这个函数来总结无限参数的数量
- python - 在熊猫中滚动一阶导数和二阶导数