每 100 行拆分一个大型 txt 文件并包含原始标题(在 Mac 上)

Dan*_*Dan 1 script text-editing textwrangler macos

我正在寻找一种工具或脚本(Textwrangler 或终端),它可以从第 5 行开始每 100 行拆分一个较大的文本文件(前 4 行是标题行)并输出包含原始标题的单个 .txt 文件。

例如

输入:

File.txt
line1 / line4   HEADER
...
line5 / line265 DATA
Run Code Online (Sandbox Code Playgroud)

输出:

File_01.txt
line1/line4   HEADER
line5/line104 DATA

File_02.txt
line1/line4   HEADER
line5/line104 DATA

File_03.txt
line1/line4   HEADER
line5/line65  DATA
Run Code Online (Sandbox Code Playgroud)

文本文件使用 Windows 换行符 (CR LF) 以防万一。

我目前正在手动执行此操作,因此非常欢迎任何可以提高此过程效率的建议。

Nif*_*fle 5

  1. 删除标题并将其放入单独的文件中header.txt
  2. 使用拆分数据split --lines=100 data.txt(这会生成大量文件,其中包含 100 行,每个文件名为 xaa xab xac 等等)
  3. 然后将标题添加到每个文件for a in x??; do cat header.txt $a > $a.txt; done这会导致调用完成的数据文件(带有标题)xaa.txt xab.txt xac.txt ...

如果数据量太大(或者您拆分的行数较少)以至于 xxx 文件不够拆分,则会生成四个字母命名的文件。在这种情况下?,在for上面的 -语句中插入一个额外的内容。

编辑:
要自动提取标题,请使用head -4 origdata.txt > header.txt提取前四行。使用tail -n +4 origdata.txt > data.txt于提取物以外的所有前四行。现在您有两个文件,一个带有标题,一个带有数据。将其组合到脚本中应该不会太难。(我今天无法访问 bash)