Sponsored Content
Top Forums Shell Programming and Scripting Passing variable and wild card character to grep in Perl Post 302449784 by durden_tyler on Tuesday 31st of August 2010 01:57:10 PM
Old 08-31-2010
Are you looking for something like this ?

Code:
$
$
$ # list the files in current directory
$ ls -1
MQS_MT535_A1b2X_20100831_blah
MQS_MT535_PQ9rs_20100831_blah
MQS_MT535_XY#9t_20100831_blah
openfiles.pl
$
$
$ # show the contents of the Perl script
$ cat -n openfiles.pl
     1  #perl -w
     2  $some_dir = ".";
     3  $pattern = $ARGV[0];
     4  opendir (my $dh, $some_dir) || die "Can't opendir $some_dir: $!";
     5  @files = grep {/$pattern/x} readdir($dh);
     6  print $_,"\n" for (@files);
     7  closedir ($dh) || die "Can't closedir $some_dir: $!";
$
$
$ # run the Perl script passing a pattern to it
$
$ perl openfiles.pl "MQS_MT535_[A-Za-z0-9]{5}_20100831_"
MQS_MT535_A1b2X_20100831_blah
MQS_MT535_PQ9rs_20100831_blah
$
$
$ # run the Perl script again, passing yet another pattern so that all "MQS" files are selected
$
$ perl openfiles.pl "MQS_MT535_[A-Za-z0-9#]{5}_20100831_"
MQS_MT535_A1b2X_20100831_blah
MQS_MT535_PQ9rs_20100831_blah
MQS_MT535_XY#9t_20100831_blah
$
$
$ # or a very general pattern
$
$ perl openfiles.pl "MQS_MT535"
MQS_MT535_A1b2X_20100831_blah
MQS_MT535_PQ9rs_20100831_blah
MQS_MT535_XY#9t_20100831_blah
$
$

tyler_durden

Last edited by durden_tyler; 08-31-2010 at 03:20 PM..
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

using if with wild card patterns

Hi, Please help me. Suppose I have a file which contains files like: My file :/tmp/rooh_20020518.lst it consists: ASI00320225041925URD01 ASI00320225041925KER02 ASI00390228095244KER08 ... (1 Reply)
Discussion started by: rooh
1 Replies

2. UNIX for Dummies Questions & Answers

ls and wild card - Should be simple!

I am trying to cp files that have F0 as prefix in their name in path p1/p2 to path p3/p4 this command does not work - Why? (I am using HP/UX) cp p1/p2/F0* p3/p4 thanks. (2 Replies)
Discussion started by: GNMIKE
2 Replies

3. UNIX for Dummies Questions & Answers

How do I pass a wild card as an argument

Hi, I would like to pass a wild card as part of an argument. But when I do it the script views the wild card as text. Example: sFile=MG1A* sort $sFile > $sFile.sorted What I get is MG1A*.sorted The problem is I am passed a series of files where the first few characters like "MG1A"... (2 Replies)
Discussion started by: eja
2 Replies

4. Shell Programming and Scripting

Wild card in find perm

Hi, Is there a way to use find command to list the directories for certain permissions. I know we can use find . -type d -perm nnn, where nnn is the permission number . However I wold like to know if I wanna search for wild card permissions i.e 75* / 7* / 55* , as i do not know the actual... (1 Reply)
Discussion started by: braindrain
1 Replies

5. AIX

df, grep, wild card

Hi, I want to monitor my filesystem capacity and I want to df with grep wildcard for all 9*%. Is this possible? I want to replaced all the existing complicated scripts I have in the system. Thanks, Itik (2 Replies)
Discussion started by: itik
2 Replies

6. Shell Programming and Scripting

How to use wild card character in string concatenation--please help

Hi All, I'm new to shell scripting. Please help me in achieving this I am trying to a find regular expression that need to pick a file with begin with the below format and this code is called in xml file. currently the script accepts:... (0 Replies)
Discussion started by: vasavi_cherku
0 Replies

7. Shell Programming and Scripting

wild card in if condition not working

Hi, I am using RHEL5. I have following if condition. if In the above condition, if the value of a contains word WARNING, it should match. i.e., WARNING_MESSAGE, CRITICAL WARNING, WARNING ALERT etc. it should match. For b, alert error, ALERT ERROR, ERROR IMMEDIATE ACTION REQUIRED, etc... (2 Replies)
Discussion started by: user7509
2 Replies

8. Shell Programming and Scripting

Grep using wild card issue

Hi, I am having a file (file1) having following contents " xet B - All Divers/All Rivers - - ns - " Now when i use cat file1 | grep 'RF' it doesn't returns anything. But on using cat file1 | grep 'RF*' shows me... (6 Replies)
Discussion started by: sarbjit
6 Replies

9. Shell Programming and Scripting

find with wild card [solved]

Can somebody help me with the following syntax? I want to find all files that end with *.arc SUFFIX=".arc" find /tmp -name "\*$SUFFIX" -print 2>/dev/null ---------- Post updated at 03:45 PM ---------- Previous update was at 03:41 PM ---------- got it thanks -name... (0 Replies)
Discussion started by: BeefStu
0 Replies

10. Shell Programming and Scripting

Wild card for dir path

I have dir structure like this : /opt/oracle/product/abc/sqlplus/admin/ /opt/oracle/product/def/sqlplus/admin /opt/oracle/product/ghi/sqlplus/admin I am trying to use wildcard ( for dirs abc,def,ghi) ..something like this : cp xyz.txt ... (1 Reply)
Discussion started by: talashil
1 Replies
PTARGREP(1)						 Perl Programmers Reference Guide					       PTARGREP(1)

NAME
ptargrep - Apply pattern matching to the contents of files in a tar archive SYNOPSIS
ptargrep [options] <pattern> <tar file> ... Options: --basename|-b ignore directory paths from archive --ignore-case|-i do case-insensitive pattern matching --list-only|-l list matching filenames rather than extracting matches --verbose|-v write debugging message to STDERR --help|-? detailed help message DESCRIPTION
This utility allows you to apply pattern matching to the contents of files contained in a tar archive. You might use this to identify all files in an archive which contain lines matching the specified pattern and either print out the pathnames or extract the files. The pattern will be used as a Perl regular expression (as opposed to a simple grep regex). Multiple tar archive filenames can be specified - they will each be processed in turn. OPTIONS
--basename (alias -b) When matching files are extracted, ignore the directory path from the archive and write to the current directory using the basename of the file from the archive. Beware: if two matching files in the archive have the same basename, the second file extracted will overwrite the first. --ignore-case (alias -i) Make pattern matching case-insensitive. --list-only (alias -l) Print the pathname of each matching file from the archive to STDOUT. Without this option, the default behaviour is to extract each matching file. --verbose (alias -v) Log debugging info to STDERR. --help (alias -?) Display this documentation. COPYRIGHT
Copyright 2010 Grant McLean <grantm@cpan.org> This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself. perl v5.16.2 2013-08-25 PTARGREP(1)
All times are GMT -4. The time now is 05:18 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy