0

我有一个大文件,内容如下:

dn: CN=Brower\, Stephen,OU=Recipients,OU=Mailboxes,OU=Exchange2000,DC=raritanval,DC=edu
changetype: modify
replace: department
department: Computer Science
-

dn: CN=Brower\, Stephen,OU=Recipients,OU=Mailboxes,OU=Exchange2000,DC=raritanval,DC=edu
changetype: modify
replace: description
description: Computer Science

-

我想创建多个文件,其输出从“dn:”到“-”,这意味着它将从 dn: 开始搜索,并将打印到 - 在一个文件中,依此类推。并且还需要为将要创建的文件具有一些标准名称。

4

1 回答 1

1

awk 脚本会很有帮助。由于您在 AIX 上运行,您可能希望安装 GNU awk(或 gawk)。gawk 比 vanilla awk 有更多有用的功能。

awk 'BEGIN{fnum=1;}($1=="dn:"){flag=1; x=""}(flag==1){x=x "\n" $0}($1=="-"){flag=0; fn="file" fnum; print x > fn; close (fn); fnum++;}'

这会将数据转储到按顺序编号为 file1、file2、... 的文件中

[编辑以反映 OP 的需求并添加 close(fn)]

于 2013-05-16T14:39:39.567 回答