当前位置: 首页 > news >正文

在shell中分割文件

在 Shell 中,可以使用 split 命令或 awk 命令将文件按行数分割。以下是两种常用的方法:


方法 1:使用 split 命令

split 命令可以将文件分割成多个小文件。默认情况下,split 按行数分割文件。

(1)按每 30 行分割文件

bash

split -l 30 input_file output_prefix
  • -l 30:每 30 行分割一次。

  • input_file:需要分割的文件。

  • output_prefix:输出文件的前缀(例如 output_)。

(2)示例

假设有一个文件 data.txt,内容如下:

line1
line2
...
line90

运行以下命令:

bash

split -l 30 data.txt part_

会生成以下文件:

  • part_aa(包含第 1-30 行)

  • part_ab(包含第 31-60 行)

  • part_ac(包含第 61-90 行)

(3)自定义输出文件名

如果希望输出文件名有数字后缀(如 part_01part_02),可以使用 -d 选项:

bash

split -l 30 -d data.txt part_

生成的文件名为:

  • part_00

  • part_01

  • part_02


方法 2:使用 awk 命令

awk 是一个强大的文本处理工具,可以按行数分割文件。

(1)按每 30 行分割文件

bash

复制

awk 'NR%30==1 {file="output_" int((NR-1)/30) ".txt"} {print > file}' input_file
  • NR%30==1:每 30 行切换一次输出文件。

  • file="output_" int((NR-1)/30) ".txt":生成输出文件名(如 output_0.txtoutput_1.txt)。

  • {print > file}:将当前行写入对应的文件。

(2)示例

假设有一个文件 data.txt,运行以下命令:

bash

awk 'NR%30==1 {file="output_" int((NR-1)/30) ".txt"} {print > file}' data.txt

会生成以下文件:

  • output_0.txt(包含第 1-30 行)

  • output_1.txt(包含第 31-60 行)

  • output_2.txt(包含第 61-90 行)


方法 3:使用 csplit 命令

csplit 命令可以根据行数或模式分割文件。

(1)按每 30 行分割文件

bash

csplit input_file 30 {*}
  • 30:每 30 行分割一次。

  • {*}:重复分割直到文件结束。

(2)示例

假设有一个文件 data.txt,运行以下命令:

bash

csplit data.txt 30 {*}

会生成以下文件:

  • xx00(包含第 1-30 行)

  • xx01(包含第 31-60 行)

  • xx02(包含第 61-90 行)

相关文章:

  • Python-树状数组算法入门
  • Linux中基础开发工具详细介绍
  • 16.AVL树实现
  • 关于 NoC 中数据安全传输的设计与实现的详细介绍
  • C++ 容器库概述:序列容器、关联容器与无序关联容器的原理、性能与应用
  • Docker Compose 使用笔记
  • QT 学习一 paintEvent,QPainter ,QImage
  • 智慧城市运行管理服务平台建设方案
  • STM32串口通信
  • ‘java‘ 不是内部或外部命令,也不是可运行的程序或批处理文件。
  • 【网络】什么是 IHL(Internet Header Length,首部长度)TTL(Time To Live,生存时间)?
  • 【编解码技术】什么是编码复杂度?
  • SpringMVC(三)响应处理
  • 构建智能汽车地图标准体系:自动驾驶技术的基石
  • 一文讲清楚CUDA与PyTorch、GPU之间的关系
  • 基于Python的selenium入门超详细教程(第1章)--WebDriver API篇
  • 【Linux-传输层协议TCP】TCP协议段格式+确认应答+超时重传+连接管理机制(三次握手、四次挥手、理解TIME_WAIT + CLOSE_WAIT)
  • 结构型——适配器模式
  • 二维数组常见应用场景以及示例
  • [Ai 力扣题单] 数组基本操作篇 27/704/344/386
  • 虚拟主机管理系统源码/福州百度关键词优化
  • 网站模板预览/站长工具seo综合查询推广
  • 山东住房和建设厅网站/西安seo
  • 网站教程制作/杭州seo推广排名稳定
  • 北京的网站建设/郑州网站运营
  • 网站备案号如何查询/如何制作付费视频网站