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
fnmatch(3C) fnmatch(3C)
NAME
fnmatch() - match filename patterns
SYNOPSIS
DESCRIPTION
performs pattern matching as described in regexp(5) under By default, the rule qualifications for filename expansion do not apply; i.e.,
periods (dots) and slashes are matched as ordinary characters. This default behavior can be modified by using the flags described below.
The flag argument modifies the interpretation of pattern and string. If which is defined in is set in flag, a slash character in string
must be explicitly matched by a slash in pattern; it cannot be matched by either the asterisk or question mark special characters or by a
bracket expression.
If is set in flag, a leading period must be explicitly matched. It will not be matched by a bracket expression, question mark or asterisk.
By default, a period is leading if it is the first character in string. If is set in flag, a period is leading if it is the first charac-
ter in string or immediately follows a slash.
If is not set in flag, a backslash character in pattern followed by any other character matches that second character in string. In par-
ticular, matches a backslash in string. If is set, a backslash character is treated as an ordinary character.
If flag is zero, the slash character and the period are treated as regular characters. If flag has any other value, the result is unde-
fined.
RETURN VALUE
If string matches the pattern specified by pattern, returns zero. Otherwise, returns non-zero.
EXAMPLE
The following excerpt uses to check each file in a directory against the pattern
pattern = "*.c";
while(dp = readdir(dirp)){
if((fnmatch(pattern, dp->d_name,0)) == 0){
/* do processing for match */
...
}
}
AUTHOR
was developed by OSF and HP.
SEE ALSO
sh(1), glob(3C), thread_safety(5).
STANDARDS CONFORMANCE
fnmatch(3C)