如何将文件分成相等的部分而不破坏单独的行? [复制]

2024-01-01

我想知道是否可以将文件分成相等的部分(edit:= 除了最后一个之外都相等),而不破坏线?在 Unix 中使用 split 命令,行可能会分成两半。有没有一种方法可以将一个文件分成 5 个相等的部分,但仍然只包含整行(如果其中一个文件稍大或稍小也没有问题)?我知道我可以只计算行数,但我必须对 bash 脚本中的很多文件执行此操作。非常感谢!


如果你的意思是相同数量的lines, split有一个选项:

split --lines=75

如果你需要知道那是什么75真的应该是为了N等份,其:

lines_per_part = int(total_lines + N - 1) / N

总行数可以通过以下方式获得wc -l.

请参阅以下脚本的示例:

#!/usr/bin/bash

# Configuration stuff

fspec=qq.c
num_files=6

# Work out lines per file.

total_lines=$(wc -l <${fspec})
((lines_per_file = (total_lines + num_files - 1) / num_files))

# Split the actual file, maintaining lines.

split --lines=${lines_per_file} ${fspec} xyzzy.

# Debug information

echo "Total lines     = ${total_lines}"
echo "Lines  per file = ${lines_per_file}"    
wc -l xyzzy.*

这输出:

Total lines     = 70
Lines  per file = 12
  12 xyzzy.aa
  12 xyzzy.ab
  12 xyzzy.ac
  12 xyzzy.ad
  12 xyzzy.ae
  10 xyzzy.af
  70 total

更新的版本split允许您指定多个CHUNKS-n/--number选项。因此你可以使用类似的东西:

split --number=l/6 ${fspec} xyzzy.

(that's ell-slash-six, 意义lines, not one-slash-six).

这将为您提供大小大致相等的文件,并且没有中线分割。

我提到最后一点是因为它并没有给你大致相同的数量lines在每个文件中,更多相同数量的人物。

因此,如果您有 1 个 20 字符行和 19 个 1 字符行(总共 20 行)并分成 5 个文件,您很可能won't每个文件中有四行。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何将文件分成相等的部分而不破坏单独的行? [复制] 的相关文章

  • '>&0' 有用途吗(重定向到标准输入)?

    在 bash 中你可以这样做 echo test gt 1 重定向到标准输出 尽管它已经到那里了 echo test gt 2 重定向到标准错误 echo test gt 0 重定向到标准输入 当我做最后一个时 我的终端仍然打印test就像
  • 嵌入定义绑定变量的 Oracle PL/SQL 代码的 Shell 脚本

    如果我运行下面的脚本 我会收到错误SP2 0552 未声明绑定变量 OUTRES 那么 如何定义绑定变量OUTRES以及在哪里定义呢 usr bin bash sqlplus s scott tiger lt lt EOF declare
  • 从 shell 脚本导入函数

    我有一个 shell 脚本 我想用 shUnit 测试它 该脚本 以及所有函数 位于单个文件中 因为它使安装更加容易 示例script sh bin sh foo bar code 我想编写第二个文件 不需要分发和安装 来测试中定义的函数s
  • 有没有办法改变vim的默认模式

    有谁知道如何更改vim的默认模式 它的默认模式是命令模式 但是我可以将其更改为插入模式吗 只需将以下行添加到您的 vimrc 中 start Vim s default mode will be changed to Insert mode
  • 零垫重命名,例如图片 (2).jpg -> 图片 (002).jpg

    我需要按照标题在所有子文件夹中解释的方式重命名所有图像 我正在考虑用正则表达式提取括号内的数字 然后重命名它 搜索周围我看到有类似的工具rename and mmv但我无法让他们重新命名 jpg 我将不胜感激任何解决我的问题的建议 顺便说一
  • 使用两列数据分割数据帧并对结果数据帧列表应用通用转换

    我想根据两列中的值将一个大数据帧拆分为一个数据帧列表 然后 我想对结果列表中的所有数据帧应用通用数据转换 滞后转换 我知道 split 命令 但只能让它一次处理一列数据 您需要将所有想要分割的因素放在一个列表中 例如 split mtcar
  • 如何转义 bash 别名中的空格?

    尝试在我的 bashrc 文件中设置一些别名 这个 export alias umusic Volumes 180 gram Uncompressed 出现以下错误 bash cd Volumes 180 没有这样的文件或目录 当我尝试 c
  • 使用 xargs 时如何获取退出代码(并行)

    我制作了一个用于启动并行 rsync 进程的脚本 bin bash LIST 1 DEST DIR 2 RSYNC OPTS 3 echo rsyncing From SRC DIR To DEST DIR RSYNC OPTS RSYNC
  • Bash:替换管道标准输入中的子字符串

    我尝试用新的子字符串替换标准输入中的某个子字符串 在读取几个文件后 我必须从管道获取标准输入cat 然后我想将更改后的字符串向前推到管道中 这是我尝试做的 cat file1 file2 echo cat path to file path
  • 我应该使用 AWK 或 SED 删除 CSV 文件中引号之间的逗号吗? (重击)

    我有一堆日常打印机登录CSV格式 我正在编写一个脚本来跟踪使用了多少纸张并将信息保存到数据库中 但我遇到了一个小问题 本质上 日志中的一些文档名称中包含逗号 全部用双引号引起来 并且由于它采用逗号分隔格式 所以我的代码搞乱了并将所有内容推到
  • 如何将Python包从旧版本安装到新版本?

    我正在使用 python 3 7 最近在 Linux 中安装了 python 3 8 是否有任何 bash 命令或脚本可以获取 3 7 的所有软件包列表并在 3 8 版本中一一安装 我想避免每个包裹都手工完成 注意 我将它们安装在我的系统中
  • Git - 致命:无法获取当前工作目录?

    When I git clone从回购协议中 我得到 fatal Could not get current working directory No such file or directory 我该怎么办 我检查了服务器并发现 git文
  • 基于文件位置而不是当前工作目录的相对路径[重复]

    这个问题在这里已经有答案了 Given some txt dir cat sh cat sh 的内容如下 cat some txt 然后运行 cat sh inside dir运行时工作正常 dir cat sh与dir才不是 我预计这是由
  • 从文件中删除包含非英语 (Ascii) 字符的行

    我有一个文本文件 其中包含来自不同语言的字符 例如 中文 拉丁文等 我想删除包含这些非英语字符的所有行 我想包含所有英文字符 a b 数字 0 9 和所有标点符号 我如何使用 awk 或 sed 等 unix 工具来完成此操作 Perl 支
  • 如何将文本数据从 ruby​​ 控制台传递到剪贴板而不保存到文件?

    我试图将我创建的全局变量中包含的数组传递到我的 mac 上的剪贴板中 它很长 所以我不想在控制台上突出显示 复制和粘贴 我想使用嵌入式unix代码 特别是pbcopyMac 笔记本电脑控制台的功能 允许我将文本传递到我的计算机剪贴板中 准备
  • 在 Bash 中使用“$RANDOM”生成随机字符串

    我正在尝试使用 Bash 变量 RANDOM创建一个由包含整数和字母数字的变量中的 8 个字符组成的随机字符串 例如 var abcd1234ABCD 我怎样才能做到这一点 使用参数扩展 chars 是可能的字符数 是模运算符 chars
  • bash 脚本中的变量值不会改变[重复]

    这个问题在这里已经有答案了 运行以下代码 a one echo a a two echo a a three echo a gt a 结果是 one one 以及创建的文件名称为 one 内容为 one 为什么变量没有更改为two在第 2
  • 如何在Linux中获取带有图标的活动应用程序

    我想找到一种方法获取活动应用程序的列表及其名称和图标 实际上 我正在使用此命令来获取所有活动进程 wmctrl lp 示例输出 0x03800002 0 3293 user notebook XdndCollectionWindowImp
  • 仅为我自己禁用和重新启用地址空间布局随机化

    我想在我的系统 Ubuntu Gnu Linux 2 6 32 41 server 上禁用地址空间布局随机化 ASLR 但是 如果我使用 sysctl w kernel randomize va space 0 我认为这一更改将影响系统上的
  • k8s CronJob 在 pod 列表上循环

    我想在特定命名空间中的 pod 上运行循环 但诀窍是在 cronJob 中执行此操作 是否可以内联 kubectl get pods n foo 这里的技巧是在你获得 Pod 列表后 我需要循环并在 15 秒的超时时间内将每个 Pod 删除

随机推荐

  • 手动 DAL 和 BLL 与 ORM

    哪种方法更好 1 使用一个第三方ORM系统或2 手动编写DAL和BLL代码使用数据库 1 在我们的一个项目中 我们决定使用 DevExpress XPO ORM 系统 但我们遇到了很多小问题 浪费了我们很多时间 AMD仍然时不时地遇到来自这
  • 阻止 ConstraintLayout 中的视图重叠

    我正在尝试使用 ConstraintLayout 构建一个具有三个视图的简单布局 当左视图中的文本很长时 我想看到这个 但我得到的是这样的 左视图向右增长太多并隐藏了中间视图 这是我的代码
  • 通过货物安装板条箱时出错:指定的包没有二进制文件

    我正在尝试使用 Cargo 在我的系统 Arch Linux 上安装 Rust 箱子 我可以搜索板条箱并找到我需要的东西 例如 cargo search curl head n3 Updating registry https github
  • 在公共功能分支中使用 git rebase

    您可以在网上看到人们建议不要使用git rebase在公共分支中 但如果您总是对功能分支进行变基 我看不出问题是什么 我的团队总是使用分支来实现功能 哇 我们习惯于在本地拥有它 所以变基不是问题 但有时我们想向其他开发人员展示部分完成的功能
  • 在nodeJs中,有没有一种方法可以在不使用数组大小​​的情况下循环数组?

    假设我有 myArray item1 item2 I tried for var item in myArray console log item 它打印 0 1 我所希望的是拥有 项目1 项目2 是否有任何其他语法可以在不使用的情况下工作
  • 如何在php中获取选定表项的id

    我应该得到id从表中提出请求 但我就是这样做的 我的桌子 id AI 名称 Varchar authir varchar 类别 varchar 我想如果有任何解决方案可以解决这个问题 谢谢我的问题出现在以下几行中 Print td a hr
  • Java Collection 的多个索引 - 最基本的解决方案?

    我正在寻找在 Java 集合上创建多个索引的最基本的解决方案 所需功能 当删除某个值时 与该值关联的所有索引条目都必须删除 索引查找必须比线性搜索更快 至少与 TreeMap 一样快 附带条件 不依赖于大型 如 Lucene 库 没有不常见
  • JSDOM:无法解析 CSS 样式表

    使用以下命令 node modules babel core register js node modules jsdom global register js spec jsx 我正在运行以下测试文件 use strict import
  • 导入后完整日历样式不正确

    我正在尝试在我的项目中使用 React Full Calendar 尽管日历以正确的方式呈现 但样式有点不对劲 目前的情况如下 正如您所看到的 在标题工具栏中 月份单词没有在中间对齐 其他单词和图标也是如此 也许 按钮本身的尺寸在高度上看起
  • 如何使用/安装 python 2to3?

    由此https docs python org 3 4 library 2to3 html https docs python org 3 4 library 2to3 html它说 2to3 应该作为脚本与 python 解释器一起安装
  • 如何告诉 RandomizedSearchCV 选择分布或 None 值?

    假设我们正在努力寻找最好的max depth的参数RandomForestClassifier http scikit learn org stable modules generated sklearn ensemble RandomFo
  • ddply 按 R 中的组求和

    我有一个示例数据框 数据 如下所示 X Y Month Year income 2281205 228120 3 2011 1000 2281212 228121 9 2010 1100 2281213 228121 12 2010 900
  • std::setw 和 unicode 字符

    我的问题如以下最小示例所示 include
  • 如何向此 CSS“切换器”“切换开关”添加文本

    这是实际的 Switcher 生成器 https proto io freebies onoff https proto io freebies onoff 我不清楚如何向事件添加文本 因此 当开关处于默认状态时 会显示某些文本 反之亦然
  • Mathematica 绘图中多个函数的检测和样式设置

    This https stackoverflow com questions 5597566 这个问题让我开始思考 Mathematica 如何检测正在绘制的多个函数 我发现我实在是看不懂这个流程 考虑 Plot 1 Sequence 2
  • 如何为二维数组的 qsort 编写比较器函数?

    我有一个 n 2 大小的数组 我想根据第二列的值使用 qsort 对它们进行排序 include
  • IEquatable,如何正确实施[重复]

    这个问题在这里已经有答案了 我正在使用 net 2 0 和 c 并且我已经在我的类中实现了 IEquatible 接口 如下所示 public MyClass IEquatable
  • 如何计算 char 数组中的元素数量?

    我试图计算数组中的元素数量 并被告知该行 int r sizeof array sizeof array 0 会给我数组中元素的数量 我发现该方法确实有效 至少对于 int 数组而言 然而 当我尝试这段代码时 事情就崩溃了 include
  • 为 Galaxy S8 创建模拟器? - 安卓工作室

    我创建了一个新的硬件配置文件 试图为 Galaxy S8 S8 制作模拟器 我将屏幕尺寸设置为 5 8 6 2 英寸 取决于 S8 还是 S8 尽管事实上这似乎不会影响模拟器 屏幕分辨率设置为 1440 x 2960 就像设备一样 模拟器看
  • 如何将文件分成相等的部分而不破坏单独的行? [复制]

    这个问题在这里已经有答案了 我想知道是否可以将文件分成相等的部分 edit 除了最后一个之外都相等 而不破坏线 在 Unix 中使用 split 命令 行可能会分成两半 有没有一种方法可以将一个文件分成 5 个相等的部分 但仍然只包含整行