Sponsored Content
Full Discussion: Perl Issue
Top Forums Shell Programming and Scripting Perl Issue Post 302280523 by raj001 on Tuesday 27th of January 2009 07:14:23 AM
Old 01-27-2009
Perl Issue

Hi,

I got this script from the web, this generates an LDAP report in CSV format.

Code:
#!/usr/bin/perl
#
# Copyright (c) 2004
# Ali Onur Cinar &060;cinar&064;zdo.com&062;
#
# License:
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for non-commercial purposes and without fee is hereby
# granted, provided that the above copyright notice appear in all copies
# and that both the copyright notice and this permission notice and
# warranty disclaimer appear in supporting documentation, and that the name
# of Ali Onur Cinar not be used in advertising or publicity pertaining to
# distribution of the software without specific, written prior permission.
#
# @author A. Onur Cinar <cinar(a)zdo.com># @version $Id: ldap2csv.pl,v 1.1 2004/12/07 15:12:38 cinar Exp $#
use Net::LDAP;
@fields = # fields to export
(  # Label Field Name Index 
  ['First Name', 'givenName' , 0], ['Last Name' , 'sn' , 0], ['Title' , 'title' , 0],
  ['Email' , 'mail' , 0], ['Email 2' , 'mail' , 1], ['Phone' , 'telephoneNumber', 0], 
  ['Phone' , 'telephoneNumber', 1], ['Phone' , 'telephoneNumber', 2], 
  ['Phone' , 'telephoneNumber', 3], ['Phone' , 'telephoneNumber', 4], 
  ['Mobile' , 'mobile' , 0], 
  ['Birthday' , 'birthday' , 0], ['Address' , 'street' , 0], ['Address' , 'street' , 1], 
  ['Address' , 'street' , 2],
);
 
$ldap = Net::LDAP->new('localhost') or die "$@"; # open connection
$mesg = $ldap->bind( # login 
            "uid=test", password => "password");
$mesg = $ldap->search( # search 
            base => "dc=abc", 
            filter => "(objectClass=inetOrgPerson)"
);
 
$DATETIME=`date`;
 
sub get # get field value
{ return $_[0]->exists($_[1]) ? $_[0]->get($_[1])->[$_[2] ? $_[2] : 0] : '';}
 
print "$DATETIME"; # first line with file created date/time
print '"'.(join '","', "Report", # header map {$_->[0]} @fields)."\"\n";
foreach $entry ($mesg->all_entries) # for each entry
{ 
   @dn = map {s/[a-z]+=//gi; $_ = ucfirst} # organization 
          reverse split /,/, $entry->dn; 
   shift @dn; shift @dn; 
   shift @dn; pop @dn; 
 
   print '"'
       . (join '","', "@dn",         # row map   
            {get $entry, $_->[1], $_->[2]} @fields)
       . "\"\n";
}
$mesg = $ldap->unbind; # close connection

This script prints value in the following format :

Code:
 
"abc","1234","HCM","John D","JOHN D","rocks" 12","seigo"
"abc2","12345","TDM","Mr Say","Mr Say T","hupt","margo"

If you see there is a quote in the field (rocks" 12), I want to remove the quote from the field value only.Is there any way to modify the script and remove the quotes occuring in any of the field?

Thanks in Advance.

Last edited by otheus; 01-28-2009 at 06:31 AM.. Reason: formatting
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

issue with if loop in perl

Hi I have a log file, I am having problem with "if else" loop in my perl script which does, find a string in that file ,If that string is found append to success.txt else append it to failed.txt. problem is: else part of loop it is not working I am adding problem part of the script. ... (4 Replies)
Discussion started by: amitrajvarma
4 Replies

2. Shell Programming and Scripting

perl issue ..

hi one perl issue i have xml file with 2 values and one condition b.w them <rule> <val1>12</val1> <cond>and</cond> <val2>13</val2> </rule> i read these values in hash in perl code $one{val1} = 12 $one{cond} = and $one{val2} = 13 now i want to form... (3 Replies)
Discussion started by: zedex
3 Replies

3. Shell Programming and Scripting

Perl Script Issue - Please Help * Thanks!!!

Please help me with my script please. I am trying to do the following: 1. Read files for the current directory 2. Open and read from nbe files files only 3. Read only the lines with the results pattern 4. Split the line and print 3rd field Please indicate what line I need to modify. ... (8 Replies)
Discussion started by: jroberson
8 Replies

4. Shell Programming and Scripting

Perl issue - please help!

Hello. I've been writing some code in Perl to read in strings from html files and have been having issues. In the html file, each "paragraph" is a certain file on the website. I need to find every one of the files that is a certain type, in this case, having green color....therefore... (7 Replies)
Discussion started by: akreibich07
7 Replies

5. Shell Programming and Scripting

wc -l command issue with perl

Hi Team, the Following program execute with out error but the out is not save with create2.txt. kindly help me!!! print "Enter your Number \n"; my $name = <STDIN>; if ($name =="*91111*") { @dirlist1 = `wc -l $name > create2.txt`; } else {print "do not match";} (3 Replies)
Discussion started by: adaleru
3 Replies

6. Shell Programming and Scripting

perl command issue

Hi, Please could someone advise on a perl command : export ENVPROP="$HOME/cfg/environment.properties.template" export LM_LICENSE=`awk -F= '!/^#/ && /LM_LICENSE/{print $2}' environment.properties` echo $LM_LICENSE $DATA_FILE/licenses/sample.demo.lic perl -i -npe... (1 Reply)
Discussion started by: venhart
1 Replies

7. Shell Programming and Scripting

PERL - issue with OPEN

Hi, I have a menu script written in PERL which calls some shell scripts and displays the return. I'm having a problem with OPEN. A section of the code is below: `./scriptlist.ksh 1`; open OUTPUT, "</home/$SCRIPTUSER/output"; { local $/ = undef; $_ =... (2 Replies)
Discussion started by: chris01010
2 Replies

8. Shell Programming and Scripting

Perl format issue

Input : day :15 and count -100 printf ("%6.6ld %10.10s %s\n",day,count) any idea what would be the format it will be. (3 Replies)
Discussion started by: ramkumar15
3 Replies

9. Shell Programming and Scripting

Out of memory issue in perl

I am getting a out of memory issue while executing the perl program. Per version : /opt/acc_perl/lib/site_perl/5.14.2 Read in 54973 total records Read in 54973 table records from table. Out of memory! so the job get failed due to out of memory. need to get rid of the out of memory... (3 Replies)
Discussion started by: ramkumar15
3 Replies

10. Programming

Perl - EMail issue - NEED Help

I have a perl that is sending emails in a bad format: "begin 644 Included.doc M*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ M*BHJ*BHJ*BHJ*BH*4U5#0T534T953"!-1$XG<R!F;W(@07)C:&EV92!022`M M($-A;F-E;`HJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ*BHJ... (1 Reply)
Discussion started by: mrn6430
1 Replies
Net::LDAP::Control::SyncRequest(3)			User Contributed Perl Documentation			Net::LDAP::Control::SyncRequest(3)

NAME
Net::LDAP::Control::SyncRequest - LDAPv3 Sync Request control object SYNOPSIS
use Net::LDAP; use Net::LDAP::Control::SyncRequest; use Net::LDAP::Constant qw( LDAP_SYNC_REFRESH_ONLY LDAP_SYNC_REFRESH_AND_PERSIST LDAP_SUCCESS ); $ldap = Net::LDAP->new( "ldap.mydomain.eg" ); $req = Net::LDAP::Control::SyncRequest->new( mode => LDAP_SYNC_REFRESH_ONLY ); my $mesg = $ldap->search(base=> 'dc=mydomain,dc='eg', scope => 'sub', control => [ $req ], callback => &searchCallback, # call for each entry filter => "(objectClass=*)", attrs => [ '*']); sub searchCallback { my $message = shift; my $entry = shift; my @controls = $message->control; if($controls[0]->isa('Net::LDAP::Control::SyncState')) { print "Received Sync State Control "; print $entry->dn()." "; print 'State: '.$controls[0]->state." ".', entryUUID: '.$controls[0]->entryUUID.', cookie: '.$controls[0]->cookie; } elsif($controls[0]->isa('Net::LDAP::Control::SyncDone')) { print "Received Sync Done Control "; print 'Cookie: '.$controls[0]->cookie.', refreshDeletes: '.$controls[0]->refreshDeletes; } } DESCRIPTION
"Net::LDAP::Control::SyncRequest" provides an interface for the creation and manipulation of objects that represent the "Sync Request Control" as described by RFC 4533. CONSTRUCTOR ARGUMENTS
In addition to the constructor arguments described in Net::LDAP::Control the following are provided. mode cookie reloadHint METHODS
As with Net::LDAP::Control each constructor argument described above is also avaliable as a method on the object which will return the current value for the attribute if called without an argument, and set a new value for the attribute if called with an argument. SEE ALSO
Net::LDAP, Net::LDAP::Control, Net::LDAP::Control::SyncState, Net::LDAP::Control::SyncDone, http://www.ietf.org/rfc/rfc4533.txt AUTHOR
Mathieu Parent <math.parent@gmail.com> Please report any bugs, or post any suggestions, to the perl-ldap mailing list <perl-ldap@perl.org> COPYRIGHT
Copyright (c) 2008 Mathieu Parent. All rights reserved. This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.12.1 2010-03-12 Net::LDAP::Control::SyncRequest(3)
All times are GMT -4. The time now is 08:55 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy