我有一个大文件,内容如下:
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开始搜索:并将打印到 - 在一个文件中,依此类推。并且需要为文件创建一些标准名称,并将其创建。
答案 0 :(得分: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的需求并增加了关闭(fn)]