2013-05-16 75 views
0

我有如下內容中的一個大文件:如何在AIX Server中使用Shell腳本查找和打印?

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

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++;}' 

這轉儲數據轉換爲按順序編號的文件1,文件2,文件...

[編輯,以反映OP的需求和增收(FN)]

+0

我使用需要某種腳本一些簡單的方法來執行我提到的上述東西。請幫我實現這一點。 –

+0

但我有文件,最後兩個逗號分隔的名字是相同的,所以在我的情況下,只有一個文件使用上述命令生成與原始文件相同。讓我知道如果我做錯了什麼。 –

+0

你能提供更多的信息嗎?看看你提供的兩條記錄,最後他們有相同的字段。例如,您列出的兩條記錄都以「DC = raritanval,DC = edu」結尾。但是,它們在「替換:」字段中有所不同。這是你的記錄結構嗎?兩個具有相同結尾字段的記錄(例如「DC = raritanval,DC = edu」)是否有不同的「replace:」字段? –