csplit命令

csplit命令将用PATTERN分隔的FILE文件输出到文件xx00xx01...,并将每个文件的字节数输出到标准输出。

语法

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

参数

  • -b, --suffix-format=FORMAT: 使用sprintf FORMAT格式而不是%02d
  • -f, --prefix=PREFIX: 使用PREFIX代替xx
  • -k, --keep-files: 出错时不要删除输出文件。
  • -m, --suppress-matched: 取消匹配PATTERN的行。
  • -n, --digits=DIGITS: 使用指定的数字位数,而不是2
  • -s, --quiet, --silent: 不要打印输出文件大小的计数。
  • -z, --elide-empty-files: 删除空输出文件。
  • --help: 输出帮助信息。
  • --version: 输出版本信息。

模式

如果文件被指定为破折号-csplit将读取标准输入,每种模式可能是:

  • INTEGER: 复制到指定行号,但不包括指定行号。
  • /REGEXP/[OFFSET]: 复制到但不包括匹配行。
  • %REGEXP%[OFFSET]: 跳至但不包括匹配行。
  • {INTEGER}: 重复上一个模式指定的次数。
  • {*}: 尽可能多次重复前面的模式。

示例

list.txt文件内容如下:

1. Apples
2. Bananas
3. Oranges
4. Pineapples
5. Guava

使用csplit命令将此文件分为两部分,第二部分从第三行开始。

csplit list.txt 3
# 21
# 34 cat xx00
# 1. Apples
# 2. Bananas cat xx01
# 3. Oranges
# 4. Pineapples
# 5. Guava

使用csplit命令将此文件分为三部分。

csplit list.txt 2 3
# 21
# 34 cat xx00
# 1. Apples cat xx01
# 2. Bananas cat xx02
# 3. Oranges
# 4. Pineapples
# 5. Guava

使用自定义的分割前缀aa代替xx分割前缀。

csplit list.txt -f aa 3
# 21
# 34 ls
# aa00 aa01 list.txt

使用三位数字代替默认的两位数字。

csplit list.txt -n 3 3
# 21
# 34 ls
# list.txt xx000 xx001

使用模式定义分割规则,重复上一个模式指定的次数。

csplit list.txt 2 {1}
# 10
# 22
# 23 ls xx*
# xx00 xx01 xx02

每日一题

https://github.com/WindrunnerMax/EveryDay

参考

https://www.computerhope.com/unix/ucsplit.htm
https://www.runoob.com/linux/linux-comm-csplit.html
https://www.geeksforgeeks.org/csplit-command-in-linux-with-examples/

csplit命令的更多相关文章

  1. Linux csplit命令详解

    Linux csplit命令 Linux csplit命令用于分割文件.拆解文件主要是split和csplit命令,如果说split是按大小来拆分的话,那么csplit则可按匹配来拆分: 将文件依照指 ...

  2. dd、split、csplit命令

    在Linux最常用的文件生成和切片工具是dd,它功能比较全面,但无法以行为单位提取文件数据,也无法直接将文件按大小或行数进行均分(除非借助循环).另两款数据分割工具split和csplit能够比较轻松 ...

  3. linux上的常见命令掌握

    http://coolshell.cn/articles/8883.html 这篇文章来源于Quroa的一个问答<What are some time-saving tips that ever ...

  4. Linux文本过滤常用命令(转)

    01 cat命令 通常用来显示文本文件的内容 一般用来查看比较短的文本文件,因为其缓冲区有限 -s选项可以用来合并文件中多余的空行,多个空行将被压缩为一个空行; -n选项可以显示行号 -b选项可以跳过 ...

  5. [置顶] Linux 常用命令集锦

    出处:http://www.vaikan.com/what-are-the-most-useful-swiss-army-knife-one-liners-on-unix/ Linux命令行里的&qu ...

  6. linux常用命令技巧

    原文地址 这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?>—— Li ...

  7. Linux命令-文本编辑(一)

    Linux命令-文本编辑(一) Linux col命令 Linux col命令用于过滤控制字符. 在许多UNIX说明文件里,都有RLF控制字符.当我们运用shell特殊字符">&quo ...

  8. Linux学习之常用技巧

    ▌基础 学习 Bash .你可以man bash来看看bash的东西,并不复杂也并不长.你用别的shell也行,但是bash是很强大的并且也是系统默认的.(学习zsh或tsch只会让你在很多情况下受到 ...

  9. 应该知道的Linux技巧

    作者:陈皓(花名:钻风) 这篇文章来源于Quroa的一个问答<What are some time-saving tips that every Linux user should know?& ...

  10. Linux和Shell回炉复习系列文章总目录

    本页内容都是本人回炉Linux时整理出来的.这些文章中,绝大多数命令类内容都是翻译.整理man或info文档总结出来的,所以相对都比较完整. 本人的写作方式.风格也可能会让朋友一看就恶心到直接右上角叉 ...

随机推荐

  1. 【STM32】如何将资源烧写至外部flash,如spi-flash

    STM32将资源烧写至外部flash方式大致分为通过IDE与应用程序一起和通过CubeProgranmmer单独烧写两种: 方式一.使用IDE加载烧写算法,烧录应用程序时一并写入,具体就是修改分散加载 ...

  2. Laravel - Eloquent 模型查询

    Laravel 的 Eloquent ORM 提供了漂亮.简洁的 ActiveRecord 实现来和数据库进行交互.每个数据库表都有一个对应的「模型」可用来跟数据表进行交互.你可以通过模型查找数据表内 ...

  3. 用CI/CD工具Vela部署Elasticsearch + C# 如何使用

    Vela 除了可以帮我们编译.部署程序,利用它的docker部署功能,也能用来部署其他线上的docker镜像,例如部署RabbitMQ.PostgreSql.Elasticsearch等等,便于集中管 ...

  4. Redis-有序集合-zset

  5. Go-数组-实现队列

    package main import ( "errors" "fmt" ) // 队列 // 特征: // 1. 按照元素的添加顺序排序,并且容量固定 // ...

  6. [转帖]Oracle Exadata X10M 数据库一体机发布,树立 OLTP 数据库性能新标杆

    https://www.modb.pro/db/653936 2023年6月25日消息,Oracle 公司继续以其专用的 Exadata 平台重新定义 OLTP 数据库性能.上周,该公司延续了这一传统 ...

  7. [转帖]如何查看Docker容器环境变量,如何向容器传递环境变量

    https://www.cnblogs.com/larrydpk/p/13437535.html 1 前言 欢迎访问南瓜慢说 www.pkslow.com获取更多精彩文章! 了解Docker容器的运行 ...

  8. [转帖]kafka_export 部署实战

    https://zhuanlan.zhihu.com/p/57704357 Kafka Exporter 监控 Kafka 实时数据 需要安装的组件 Prometheus:时序数据库,按时间保存监控历 ...

  9. 【转帖】Ethernet 与 Infiniband的网络特性对比

    一.两者定位 以太网(Ethernet): 应用最广泛,是最成熟的网络互联技术,也是整个互联网络大厦的基石,兼容性非常好,可实现不同的系统之间的互连互通 IB(Infiniband): 领域很专,作为 ...

  10. [转贴]30 分钟学会 AWK

    30 分钟学会 AWK https://mp.weixin.qq.com/s/X0ire4dYiceC2CzPU6JsSw? Linux爱好者 2017-01-08   (点击上方公众号,可快速关注) ...