3
林相當新的這個替換SED一個詞,所以感謝您的耐心輸出貓在一個時間
我有一個文本文件,與數百名值的話,從我d喜歡填充一個ldif模板。因此,例如在文件example1.txt具有
**Consumer1**
**Consumer2**
和ldif.txt具有
***dn: ,cn=Insert,o=Insert
uid:
userPassword:
objectclass: top
objectclass: inetOrgPerson
objectclass: person
objectclass: organizationalPerson
businessCategory:
sn:
cn:***
***dn: ,cn=Insert,o=Insert
uid:
userPassword:
objectclass: top
objectclass: inetOrgPerson
objectclass: person
objectclass: organizationalPerson
businessCategory:
sn:
cn:***
對於這個例子Id喜歡通過example1.txt環和sed,使得第一次遇到「DN :」它可以代替它的‘DN:consumer1’,那麼第二個‘DN:consumer2’等等,所以我想它看起來像這樣算賬
*dn:**consumer1** ,cn=Insert,o=Insert
uid:
userPassword:
objectclass: top
objectclass: inetOrgPerson
objectclass: person
objectclass: organizationalPerson
businessCategory:
sn:
cn:*
*dn:**consumer2** ,cn=Insert,o=Insert
uid:
userPassword:
objectclass: top
objectclass: inetOrgPerson
objectclass: person
objectclass: organizationalPerson
businessCategory:
sn:
cn:*
我都試過,但它只是通過循環文件並重新放置CES的所有條目與DN:consumer2而不是1,小於2
for i in `cat example1.txt`
do
sed "s/dn:/dn: $i/" ldif.txt > hello.txt
done
這個輸出以下
*dn:**consumer2** ,cn=Insert,o=Insert
uid:
userPassword:
objectclass: top
objectclass: inetOrgPerson
objectclass: person
objectclass: organizationalPerson
businessCategory:
sn:
cn:*
*dn:**consumer2** ,cn=Insert,o=Insert
uid:
userPassword:
objectclass: top
objectclass: inetOrgPerson
objectclass: person
objectclass: organizationalPerson
businessCategory:
sn:
cn:*
在那裏,以便它遍歷增量做的任何方式,並取代來回,以便我們獲得dn:consumer1, 2nd hit dn:consumer2
等的第一次打擊?
感謝您的 - 我運行它時, 的awk「NR == FNR越來越語法錯誤{A [NR] = $ 0;下一個} $ 1 ==「*** dn:」{$ 1 =「* dn:」a [++ k]} 1'example1.txt ldif2.txt awk:第1行附近的語法錯誤 awk:在第1行附近跳出 有沒有一種運行awk的方式,以便它進行調試? – user2920657
奇怪。它運行在我的系統上。嘗試打破不同行中的每個命令,也許我們可以找到造成麻煩的原因 – user000001
啊哈!我在Solaris上運行它,awk上顯然無法處理它 - 我在AIX上嘗試過它,它工作正常 - 非常感謝! @ user000001 – user2920657