Автор Тема: bash script за превръщане на adr в ldif  (Прочетена 625 пъти)

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Имаме файл със следните записи:
Код
GeSHi (Bash):
  1. #CONTACT
  2. ID=256
  3. NAME=backtolife
  4. CREATED=1282574788
  5. MAIL=backtolife@somemail.com
  6. ICON=Contact0
  7.  
  8. #CONTACT
  9. ID=257
  10. NAME=backtolife2
  11. CREATED=1282804638
  12. MAIL=backtolife@backtolife.com
  13. ICON=Contact0
  14. ...
  15.  

Трябва ми скрипт който да прави това:
Код
GeSHi (Bash):
  1. dn: cn=backtolife,mail=backtolife@somemail.com
  2. objectclass: top
  3. objectclass: person
  4. objectclass: organizationalPerson
  5. objectclass: inetOrgPerson
  6. objectclass: mozillaAbPersonAlpha
  7. givenName: backtolife
  8. cn: backtolife
  9. mail: backtolife@somemail.com
  10. modifytimestamp: 0
  11.  
  12. dn: cn=backtolife2,mail=backtolife@backtolife.com
  13. objectclass: top
  14. objectclass: person
  15. objectclass: organizationalPerson
  16. objectclass: inetOrgPerson
  17. objectclass: mozillaAbPersonAlpha
  18. givenName: backtolife2
  19. cn: backtolife2
  20. mail: backtolife@backtolife.com
  21. modifytimestamp: 0
  22.  

С други думи: да взима NAME и MAIL от файла с име <name>.adr и да ги слага на на мястото cn=, givenName, mail и това е във файл <name>.ldif. останалите неща във файла ldif са постоянни: objectclass. modifytimestamp-a също е 0 във всички записи.
А иначе файла <name>adr е export на адрес книгата от Operamail, а файла <name>.ldif искам да го импортирам в mozilla thunderbird.
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

neter

  • Global Moderator
  • Напреднали
  • *****
  • Публикации: 3408
  • Distribution: Debian, SailfishOS, CentOS
  • Window Manager: LXDE, Lipstick
    • Профил
    • WWW
Re: bash script за превръщане на adr в ldif
« Отговор #1 -: Sep 07, 2010, 19:42 »
Код
GeSHi (Bash):
  1. #!/bin/bash
  2.  
  3. source_file=''
  4. output_file=''
  5.  
  6. ### НЕ Е НУЖНО ПОВЕЧЕ РЕДАКТИРАНЕ ###
  7.  
  8. names=(`cat $source_file | grep 'NAME' | cut -d'=' -f2`)
  9. mails=(`cat $source_file | grep 'MAIL' | cut -d'=' -f2`)
  10.  
  11. y=0
  12. for i in ${names[@]}; do
  13.    echo "dn: cn=$i,mail=${mails[$y]}
  14. objectclass: top
  15. objectclass: person
  16. objectclass: organizationalPerson
  17. objectclass: inetOrgPerson
  18. objectclass: mozillaAbPersonAlpha
  19. givenName: $i
  20. cn: $i
  21. mail: ${mails[$y]}
  22. modifytimestamp: 0
  23. " >> $output_file
  24.    y=$(($y+1))
  25. done
Активен

"Да си добре приспособен към болно общество не е признак за добро здраве" - Джиду Кришнамурти

b2l

  • Напреднали
  • *****
  • Публикации: 4786
  • Distribution: MCC Interim
  • Window Manager: - // - // -
  • ...sometimes I feel like screaming... || RTFM!
    • Профил
    • WWW
Re: bash script за превръщане на adr в ldif
« Отговор #2 -: Sep 07, 2010, 19:51 »
Благодаря много за помоща.
Код
GeSHi (Bash):
  1. | cut -d'=' -f2
- тази част ми липсваше.

Еми това е, ако на някой му се налага да обръща адреси от адресна книга на Operamail за да ги импортира в thunderbird, може да ползва този скрипт.

@neter  [_]3
« Последна редакция: Nov 04, 2010, 22:20 от backtolife »
Активен

"Човекът е въже, опънато между звяра и свръхчовека, въже над пропаст. Човекът е нещо, което трябва да бъде превъзмогнато." - Фр. Ницше

Подобни теми
Заглавие Започната от Отговора Прегледи Последна публикация
BASH - Script
Общ форум
blind_fish 3 3949 Последна публикация Nov 04, 2002, 20:20
от
bash script
Хардуерни и софтуерни проблеми
flame 6 4138 Последна публикация Sep 02, 2004, 12:28
от mimosh
bash script
Общ форум
anger 4 3698 Последна публикация Mar 06, 2005, 20:01
от anger
Помощ за bash script
Хардуерни и софтуерни проблеми
Ivan_storm 4 3633 Последна публикация May 30, 2005, 12:31
от rpetrov
bash script за праверяване на процес
Общ форум
sys7em 8 4187 Последна публикация Aug 09, 2005, 15:39
от