csplit命令

csplit命令

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

语法#

Copy
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文件内容如下:

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

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

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

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

Copy
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分割前缀。

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

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

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

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

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

每日一题#

Copy
https://github.com/WindrunnerMax/EveryDay

参考#

Copy
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/
posted @   WindRunnerMax  阅读(168)  评论(0编辑  收藏  举报
编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示
CONTENTS