12-13-2005
Well, I have not written a lot of Perl or anything for that matter, but from what i know this is one of the best ones to learn on.
its mostly just syntax errors that I am getting.
I am using primal script to write this in..here are the errors.
syntax error at dsget.pl line 22, near "while $filename"
syntax error at dsget.pl line 25, near "=."
Backslash found where operator expected at dsget.pl line 25, near "*,\"
(Missing operator before \?)
syntax error at dsget.pl line 37, at EOF
here are the changes that I have made and what the new script looks like. Maybe there is a good source somewhere on the net that maybe i can be pointed to??
$filename = "insert your filename here";
open (DATA,$filename) || die("Could Not Open Your File, Check the path!:");
while $filename=<DATA>;
chop($filename); #takes the newline character off
$members=`dsget group $filename -members -expand | dsget -user -display`;
$_=~\$CN=.*,\; #
$filename=$1;
open(OUT,">c:\\some\\output\\path\\$filename");
print OUT $members;
close(DATA);
Ok so basically what i am trying to do is this: I work on a windows domain and we have wayyy to many duplicate memberships in security groups and distrobution groups. I am trying to clean everything up , remove duplicate memberships and the like. You can run the command dsquery and dsget to enumerate the memberships.
So what i thought to do was write a sccript that takes the input of a file name with the LDAP path and feed that into the dsget command and output the results to a text file for each group in the input file.
then run some sort of a diff to compare the filesizes starting with the first file all the way to the end and since the output would be the same in each file (no extra characters) log the differences and compare them rather than looking at each file individually.
I hope that makes sense what i am trying to do. Let me know if it does not and i will try and explain it further.
Anyone confused yet?? :P
thanks!!
Joe
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
I have a question regarding running perl in the current process.
I shall demonstrate with an example.
Look at this.
sh-2.05b$ pwd
/tmp
sh-2.05b$ cat test.sh
#! /bin/sh
cd /etc
sh-2.05b$ ./test.sh
sh-2.05b$ pwd
/tmp
sh-2.05b$ . ./test.sh
sh-2.05b$ pwd
/etc
sh-2.05b$
So... (10 Replies)
Discussion started by: vino
10 Replies
2. Shell Programming and Scripting
I am trying to use a script to replace the header of each file, whose filename are stored within the array $test, using the sed command within a Perl script as follows:
$count = 0;
while ( $count < $#test )
{
`sed -e 's/BIOGRF 321/BIOGRF 332/g' ${test} > 0`;
`cat 0 >... (2 Replies)
Discussion started by: userix
2 Replies
3. Shell Programming and Scripting
so in unix this command works works and shows me a list of directories
find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt
but when i try running a perl script to run this command
my $query = 'find . -name \*.xls -exec dirname {} \; | sort -u | > list.txt';... (2 Replies)
Discussion started by: kpddong
2 Replies
4. Shell Programming and Scripting
How can i print the output of a perl script on a unix console and redirect the same in a log file under same directory simultaneously ?
Like in Shell script, we use tee, is there anything in Perl or any other option ? (2 Replies)
Discussion started by: butterfly20
2 Replies
5. Shell Programming and Scripting
Hi all,
Not sure if this should be in the programming forum, but I believe it will get more response under the Shell Programming and Scripting FORUM.
Am trying to write a customized df script in Perl and need some help with regards to using arrays and file handlers.
At the moment am... (3 Replies)
Discussion started by: newbie_01
3 Replies
6. Shell Programming and Scripting
I am trying to run a perl script which needs input arguments from a parent perl script, but doesn't seem to work. Appreciate your help in this regard.
From parent.pl
$input1=123;
$input2=abc;
I tried calling it with
system("/usr/bin/perl child.pl $input1 $input2");
and
`perl... (1 Reply)
Discussion started by: grajp002
1 Replies
7. Shell Programming and Scripting
Hi Folks,
I have 2 perl scripts and I need to execute 2nd perl script from the 1st perl script in WINDOWS.
In the 1st perl script that I had, I am calling the 2nd script
main.pl
===========
print "This is my main script\n";
`perl C:\\Users\\sripathg\\Desktop\\scripts\\hi.pl`;
... (3 Replies)
Discussion started by: giridhar276
3 Replies
8. Shell Programming and Scripting
Hi All,
I am aware that html tags can be embedded in cgi script as below.. In the same way is it possible to embed the below javascript in perl cgi script ??
print("<form action="action.htm" method="post" onSubmit="return submitForm(this.Submitbutton)">");
print("<input type = "text"... (1 Reply)
Discussion started by: scriptscript
1 Replies
9. Shell Programming and Scripting
Not sure what I am doing wrong here, but I can print the list with no issue. Just a blank screen with the 'do'.
#!/usr/bin/perl
open FILE, "upslist.txt";
while ($line=<FILE>){
if ($line=~/^(.*?),(.*?)$/){
#print "ups:$1 string:$2\n";
do 'check_snmp_mgeups-0.1.pl -H $1 -C $2';
} ... (1 Reply)
Discussion started by: mrlayance
1 Replies
10. Programming
I have reviewed many examples on-line about running another process (either PERL or shell command or a program), but do not find any usefull for my needs way. (Reviewed and not useful the system(), 'back ticks', exec() and open())
I would like to run another PERL-script from first one, not... (1 Reply)
Discussion started by: alex_5161
1 Replies
test(1F) FMLI Commands test(1F)
NAME
test - condition evaluation command
SYNOPSIS
test expression
expression
DESCRIPTION
test evaluates the expression expression and if its value is true, sets a 0 (TRUE) exit status; otherwise, a non-zero (FALSE) exit status
is set; test also sets a non-zero exit status if there are no arguments. When permissions are tested, the effective user ID of the process
is used.
All operators, flags, and brackets (brackets used as shown in the second SYNOPSIS line) must be separate arguments to test. Normally these
items are separated by spaces.
USAGE
Primitives
The following primitives are used to construct expression:
-r filename True if filename exists and is readable.
-w filename True if filename exists and is writable.
-x filename True if filename exists and is executable.
-f filename True if filename exists and is a regular file.
-d filename True if filename exists and is a directory.
-c filename True if filename exists and is a character special file.
-b filename True if filename exists and is a block special file.
-p filename True if filename exists and is a named pipe (FIFO).
-u filename True if filename exists and its set-user-ID bit is set.
-g filename True if filename exists and its set-group-ID bit is set.
-k filename True if filename exists and its sticky bit is set.
-s filename True if filename exists and has a size greater than 0.
-t[fildes] True if the open file whose file descriptor number is fildes (1 by default) is associated with a terminal
device.
-z s1 True if the length of string s1 is 0.
-n s1 True if the length of the string s1 is non-zero.
s1 = s2 True if strings s1 and s2 are identical.
s1 != s2 True if strings s1 and s2 are not identical.
s1 True if s1 is not the null string.
n1 -eq n2 True if the integers n1 and n2 are algebraically equal. Any of the comparisons -ne, -gt, -ge, -lt, and -le
may be used in place of -eq.
Operators
These primaries may be combined with the following operators:
! Unary negation operator.
-a Binary and operator.
-o Binary or operator (-a has higher precedence than -o).
`(expression)` Parentheses for grouping. Notice also that parentheses are meaningful to the shell and, therefore,
must be quoted.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
+-----------------------------+-----------------------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+-----------------------------+-----------------------------+
|Availability |SUNWcsu |
+-----------------------------+-----------------------------+
SEE ALSO
find(1), sh(1), attributes(5)
NOTES
If you test a file you own (the -r , -w , or -x tests), but the permission tested does not have the owner bit set, a non-zero (false) exit
status will be returned even though the file may have the group or other bit set for that permission. The correct exit status will be set
if you are super-user.
The = and != operators have a higher precedence than the -r through -n operators, and = and != always expect arguments; therefore, = and !=
cannot be used with the -r through -n operators.
If more than one argument follows the -r through -n operators, only the first argument is examined; the others are ignored, unless a -a or
a -o is the second argument.
SunOS 5.10 5 Jul 1990 test(1F)