将文件分割成多个部分

德班扬·巴苏(Debanjan Basu)

问题:给定一个文件samplein,可以将其拆分成多个部分,如下所示:

$ cat samplein
START
Unix
Linux
START
Solaris
Aix
SCO

$ awk '/START/{x="F"++i;}{print > x}' samplein
$ ls F*
F1  F2

$ cat F1
START
Unix
Linux

$ cat F2
START
Solaris
Aix
SCO

以上是该页面上的配方5
但是,我有这种情况(START在这种情况下)没有出现在第一行。

但是,如果我们samplein在同一代码/食谱后添加换行符,将不再起作用!

$ echo -e "firstline\n$(cat samplein)" > samplein
$ cat samplein
$ awk '/START/{x="F"++i;}{print > x}' samplein
awk: cmd. line:1: (FILENAME=samplein FNR=1) fatal: expression for `>' redirection has null string value

请首先在答案中也说明此awk命令的工作方式。我以前使用awk的唯一上下文是{BEGIN}{loop over all lines}{END}这个食谱看起来有点不同!

始祖

只需添加x="F0"到开头,这样就始终可以定义目标文件,即使第一行不包含该模式:

awk 'BEGIN { x="F0" ; } /START/{x="F"++i;}{print > x}' 

上面的代码分为以下伪代码:

### -> BEGIN { x="F0" ; }
i=0 # implicit
x="F0" # explicit
loop through file

### -> /START/{x="F"++i;}
if ( line contains "START" ) output file is F(next i value) ;

### -> {print > x}
print line to output file

endloop

请记住,所有子句(如BEGINEND{ ...}都是可选的。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用MATLAB将图像分割成多个部分

来自分类Dev

FFmpeg-将视频分割成多个部分

来自分类Dev

如何使用MATLAB将图像分割成多个部分

来自分类Dev

一次将文件分割成多个文件

来自分类Dev

将文件分割成多个磁盘空间不足的文件

来自分类Dev

如何将音频文件分割成多个?

来自分类Dev

将双份分割成部分-MATLAB

来自分类Dev

在R中使用regex将字符串分割成多个部分

来自分类Dev

用正则表达式将字符串分割成多个部分

来自分类Dev

将zip分割成较小的zip文件

来自分类Dev

从1到N的数字分割成多个部分

来自分类Dev

用一个很长的逗号分隔的数字字符串将文件分割成多个文件

来自分类Dev

将sed文件分割成两个文件

来自分类Dev

将字符串分割成多个字符

来自分类Dev

将多个相同字符分割成自己的行

来自分类Dev

将字符串分割成多个空格

来自分类Dev

将一栏值分割成多个-SQL

来自分类Dev

如何将一个分割成多个火花?

来自分类Dev

将音频文件分割成任意大小

来自分类Dev

将文件分割成大小大于127的块

来自分类Dev

如何将文件分割成块并计算中间行

来自分类Dev

将文本文件分割成几行以供阅读?

来自分类Dev

将音频文件分割成任意大小的片段

来自分类Dev

将list <t>按n号分割成文件

来自分类Dev

将文件分割成大小大于127的块

来自分类Dev

将图像分割成离子

来自分类Dev

android将圆分割成N个相等的部分,并知道每个分割点的坐标

来自分类Dev

在Powershell导入CSV中,每10行分割成多个文件

来自分类Dev

如何将一个文件分割成许多较小的文件然后进行重构?