AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / unix / 问题

问题[csplit](unix)

Martin Hope
Smeterlink
Asked: 2023-12-12 14:47:31 +0800 CST

通过模式匹配将文件拆分为特定的输出文件名

  • 6

我有一个包含以下内容的文件:

# new file
text in file 1
# new file
text in file 2
# new file
text in file 3

这里的模式是# new file。

我没有将每个文件保存到 xx00、xx01 和 xx02,而是保存到特定文件:another file、file new、last one。

这3个文件存在于当前目录中,所以我想将它们作为数组提供,覆盖它们:

csplit -z infile '/# new file/' "${array[*]}"

可以直接提供数组

array=('another file' 'file new' 'last one')
echo ${array[*]}
another file file new last one

或者列出当前目录

array=($(find . -type f))
echo ${array[*]}
./another file ./file new ./last one

对此脚本的修改可能是解决方案:

awk -v file="1" -v occur="2" '
{
  print > (file".txt")
}
/^\$\$\$\$$/{
  count++
  if(count%occur==0){
    if(file){
      close(file".txt")
      ++file
    }
  }
}
'  Input_file
csplit
  • 2 个回答
  • 75 Views
Martin Hope
AeroMaxx
Asked: 2023-07-13 07:21:33 +0800 CST

使用csplit根据正则表达式将一个文件拆分为多个文件

  • 5

我有一个文本文件,其中包含以下示例的内容,我想将该文件拆分为多个文件。

[TXT]   /path/to/[TXT]
[BAT]   /path/to/[BAT]
[TXT]   /path/to/blah/[TXT]
[BAT]   /path/to/blah/[BAT]

所以我发现我可以用来csplit至少部分地实现我想要实现的目标。

csplit -f 'paths-' -b '%04d.txt' 'path/to/filelist.txt' '/^\[(.*)]\t/' '{*}'

然而这会分裂成paths-0000.txt.

我希望有更多类似paths-txt.txt和的东西paths-bat.txt。

无论如何,我可以将正则表达式匹配到前缀匹配中吗?

我确实尝试过诸如-f 'paths-$1.txt'和 之类的事情-f 'paths-\1.txt'。

但这些都没有达到我希望他们做的事情。

csplit
  • 1 个回答
  • 22 Views
Martin Hope
Andrej
Asked: 2019-12-17 22:41:09 +0800 CST

使用 csplit (或类似工具)将文件拆分为 n 个文件

  • 0

我有一个具有以下模式的大文件:

ABC
line 1
line 2
line 3
ABC
line 1
line 2
ABC
line1
ABC
line 1
line 3

使用csplit工具,我可以根据/ABC/模式将上面的文件拆分为 4 个子文件:

csplit -z input.txt /ABC/ {*}

我想知道如何手动指定所需输出文件的数量。

split csplit
  • 1 个回答
  • 378 Views
Martin Hope
user3377241
Asked: 2018-10-19 12:42:20 +0800 CST

根据匹配模式旁边的值拆分文件

  • 0

我有一个文件 input.txt,其中包含 ~50,000 行和 ~100 列。我想拆分是根据匹配条目后跟匹配模式。文件分隔符是空格和制表符。

输入.txt

#information  
#dateofcreation  
#file type
AA  BB  CC DD EE FF GG HH II 
AA  bb  ac aD FF GG hg ad 
DA  ga  Dt pp Ee    FF gg pm    TT
DA  bR  AT GT Gg    FF GG Hb    Yh
NM  gt  Jh GT FF    hb TH KM MM

在输入文件中,所有行中都有一个匹配字段 FF,其后是某些行中的条目匹配项。我想从这个输入文件中得到三个输出文件

GG.txt

AA  BB  CC DD EE FF GG HH II
AA  bb  ac aD FF GG hg ad
DA  bR  AT GT Gg    FF GG Hb Yh

gg.txt

DA  ga  Dt pp Ee    FF gg pm    TT

hb.txt文件

NM  gt  Jh GT FF    hb TH KM MM

谢谢。

awk csplit
  • 1 个回答
  • 167 Views
Martin Hope
LizzAlice
Asked: 2018-04-27 05:28:07 +0800 CST

csplit 的替代方法 - 在模式之后拆分

  • 1

我想在分隔符之后拆分文件,而不是在分隔符之前,这就是 csplit 所做的。我在任何地方都找不到任何东西!(另外,为什么会有一个专门在模式之前分裂的工具,但没有一个在它之后分裂的工具?)

档案:
a
b
c
d

在 c 处分裂

输出:file1:
a
b
c

文件 2
d

csplit
  • 1 个回答
  • 1093 Views
Martin Hope
João
Asked: 2017-11-26 20:02:47 +0800 CST

csplit 无法识别提供的正则表达式

  • 5

我正在处理这个包含其他几个文件的大文件( DATA.DAT ,~900MB)。它来自PS2游戏。

声音样本(.AIFF格式),正是我所追求的,构成了它的大部分大小。

在网上搜索 PS2 .DAT提取器后,我发现它们基本上依赖于开发人员,并且由于这个游戏/工具相当晦涩,并且在网上找不到太多关于它的信息,我考虑过自己自动化这个过程。

在十六进制编辑器上检查文件时,我发现了一些.AIFF标头,将这些块克隆到新的.AIFF文件中,无需任何进一步的工作,它们就可以播放了。

花了一段时间从我非常有限的 bash 知识中得到生锈,并在这里阅读了类似的问题,我想出了这个表达:

gcsplit -f "sample-" -b "%04d.aif" DATA.DAT /FORM/ '{*}'

(我在 OSX 上使用 coreutils,因此 csplit 上的 g- 前缀)

鉴于.AIFF文件以字符串“FORM”开头,并且文件中的所有样本基本上都彼此相邻(由不会在样本上产生不需要的结束噪声的可忽略的数据量隔开),我认为正则表达式

/FORM/

将文件拆分就足够了。

但是,每个拆分文件都与位于.AIFF标头之前的声音样本之间的垃圾数据一起输出,使其无法播放。

下面是分割声音样本的十六进制数据的屏幕截图:

坏分裂

这个实际样本大约从 1500 字节标记开始:

样本

是什么让这个表达式用偏移量分割文件?

osx csplit
  • 2 个回答
  • 808 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    模块 i915 可能缺少固件 /lib/firmware/i915/*

    • 3 个回答
  • Marko Smith

    无法获取 jessie backports 存储库

    • 4 个回答
  • Marko Smith

    如何将 GPG 私钥和公钥导出到文件

    • 4 个回答
  • Marko Smith

    我们如何运行存储在变量中的命令?

    • 5 个回答
  • Marko Smith

    如何配置 systemd-resolved 和 systemd-networkd 以使用本地 DNS 服务器来解析本地域和远程 DNS 服务器来解析远程域?

    • 3 个回答
  • Marko Smith

    dist-upgrade 后 Kali Linux 中的 apt-get update 错误 [重复]

    • 2 个回答
  • Marko Smith

    如何从 systemctl 服务日志中查看最新的 x 行

    • 5 个回答
  • Marko Smith

    Nano - 跳转到文件末尾

    • 8 个回答
  • Marko Smith

    grub 错误:你需要先加载内核

    • 4 个回答
  • Marko Smith

    如何下载软件包而不是使用 apt-get 命令安装它?

    • 7 个回答
  • Martin Hope
    user12345 无法获取 jessie backports 存储库 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl 为什么大多数 systemd 示例都包含 WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky 如何将 GPG 私钥和公钥导出到文件 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll systemctl 状态显示:“状态:降级” 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim 我们如何运行存储在变量中的命令? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S 为什么 /dev/null 是一个文件?为什么它的功能不作为一个简单的程序来实现? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 如何从 systemctl 服务日志中查看最新的 x 行 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - 跳转到文件末尾 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla 为什么真假这么大? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis 在一个巨大的(70GB)、一行、文本文件中替换字符串 2017-12-30 06:58:33 +0800 CST

热门标签

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve