09-15-2017
map is confusing because it's actually a kind of loop. $1 is the bracketed part of /(.*)\// in this context.
The whole thing means, "For each item in @ARGV[N], do { /(.*)\//; output[N]=$1 }"
Then the whole thing is crammed into a "join" which returns them tab-separated.
I have no idea why it removes the ".trim", the .*\/ is a regex meaning "several of any character, followed by a forward slash". It just stops at the last forward slash in the string ( not the first, because of greedy matching. )
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hello ,
Please can someone tell me what exactly happens when the below filehandler is chomped into an array and later mapped.
$lcpLog="logcopy\@".getTimestamp."\log";
open CFg ,"< $lcpcfg";
chomp(@cfg = <CFG>);
close CFG;
@cfg=grep { $_ ne ' ' } map { lc + (split /\s*\/\//) }... (0 Replies)
Discussion started by: rmv
0 Replies
2. Shell Programming and Scripting
There is a function called start:
start()
{
echo -n $"Sending Startup Email: "
echo "${RESTARTBODY}" | mutt -s "${RESTARTSUBJECT}" ${EMAIL}
RETVAL=$?
if ; then
touch ${LOCKFILE}
success
else
failure
fi
echo
return ${RETVAL}
}
Can anyone explain what the bold part of the... (3 Replies)
Discussion started by: proactiveaditya
3 Replies
3. Shell Programming and Scripting
Hi guys,
I'm trying to learn grep and map and having a little problem.
Let's say I have a file which contains:
Apple: abcdcabdadddbac
I want to replace any combinations of three of abcd, thus when I do this:
print grep {s/{3}/X/g} <F>; # will do the subtitution fine, output XXXX
... (1 Reply)
Discussion started by: new bie
1 Replies
4. Shell Programming and Scripting
Hi,
I have 2 arrays:
@names=qw(amith veena chaitra);
@files=qw(file.txt file1.txt file3.txt);
There is one to one relationship between names and files.
There needs to be mapping created between names and files.
The output should be like this:
amith --> file.txt
veena --->... (3 Replies)
Discussion started by: vanitham
3 Replies
5. Shell Programming and Scripting
Well, I found myself trying to fix some Perl code (Ive never done any Perl in my life) and I pinpointed the place where the bug could be. But to be sure I have to know what does a few line of code mean:
$files_lim =~ (/^\d*$/)
$files_lim =~ (/^\d*h$/)
$files_age =~ s/h//
The code where... (2 Replies)
Discussion started by: RedSpyder
2 Replies
6. Shell Programming and Scripting
Hi all,
I am trying to build threads which will go to localhost and list the files in given folder.
#!/usr/bin/perl
use threads;
my $t1 = threads->new(\&sub1, 1);
my $t2 = threads->new(\&sub2, 2);
push(@threads,$t1);
push(@threads,$t2);
foreach... (5 Replies)
Discussion started by: PranavEcstasy
5 Replies
7. Shell Programming and Scripting
Hello All,
I am writing the below script where it will connect to database and returns the results.
#!/sw/gcm/perl510/bin/perl
use SybaseC;
&openConnection;
&loadvalues;
sub openConnection {
$dbproc = new SybaseC(SYDB}, $ENV{DBDFLTUSR}, $ENV{DBDFLTPWD});
if... (2 Replies)
Discussion started by: filter
2 Replies
8. Shell Programming and Scripting
Hello,
I recently started going in depth with the shell, so I started learning from Linux Shell Scripting CookBook, 2nd edition. I am at the first chapter atm, and the author tells to define a function in the ~/.bashrc.
The function is below.
prepend() { && eval $1=\"$2':'\$$1\" && export... (1 Reply)
Discussion started by: Vaseer
1 Replies
9. Shell Programming and Scripting
I have a file like
file.
file.TODAY.THISYEAR
file.TODAY.LASTYEARI want to substitute the words in caps with their actual values so that output should look like
file.140805
file.140805.2014
file.140805.2013For this I am reading the file line bye line in an array and using multiple map... (1 Reply)
Discussion started by: sam05121988
1 Replies
10. Shell Programming and Scripting
I have this code
#!/bin/bash
LZ () {
RETVAL="\n$(date +%Y-%m-%d_%H-%M-%S) --- "
return RETVAL
}
echo -e $LZ"Test"
sleep 3
echo -e $LZ"Test"
which I want to use to make logentrys on my NAS. I expect of this code that there would be output like
2017-03-07_11-00-00 --- Test (4 Replies)
Discussion started by: matrois
4 Replies
DIRNAME(3) 1 DIRNAME(3)
dirname - Returns parent directory's path
SYNOPSIS
string dirname (string $path)
DESCRIPTION
Given a string containing the path of a file or directory, this function will return the parent directory's path.
PARAMETERS
o $path
- A path. On Windows, both slash ( /) and backslash ( ) are used as directory separator character. In other environments, it is
the forward slash ( /).
RETURN VALUES
Returns the path of the parent directory. If there are no slashes in $path, a dot (' .') is returned, indicating the current directory.
Otherwise, the returned string is $path with any trailing /component removed.
CHANGELOG
+--------+-------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+-------------------------------+
| 5.0.0 | |
| | |
| | dirname(3) is now binary safe |
| | |
+--------+-------------------------------+
EXAMPLES
Example #1
dirname(3) example
<?php
echo "1) " . dirname("/etc/passwd") . PHP_EOL; // 1) /etc
echo "2) " . dirname("/etc/") . PHP_EOL; // 2) / (or on Windows)
echo "3) " . dirname("."); // 3) .
?>
NOTES
Note
dirname(3) operates naively on the input string, and is not aware of the actual filesystem, or path components such as " ..".
Note
dirname(3) is locale aware, so for it to see the correct directory name with multibyte character paths, the matching locale must be
set using the setlocale(3) function.
Note
Since PHP 4.3.0, you will often get a slash or a dot back from dirname(3) in situations where the older functionality would have
given you the empty string.
Check the following change example:
<?php
//before PHP 4.3.0
dirname('c:/'); // returned '.'
//after PHP 4.3.0
dirname('c:/x'); // returns 'c:'
dirname('c:/Temp/x'); // returns 'c:/Temp'
dirname('/x'); // returns ''
?>
SEE ALSO
basename(3), pathinfo(3), realpath(3).
PHP Documentation Group DIRNAME(3)