Sponsored Content
Top Forums Shell Programming and Scripting Getting confused about passing parameters to perl Post 302435098 by durden_tyler on Tuesday 6th of July 2010 10:51:11 AM
Old 07-06-2010
Change all single-quotes to double-quotes in your shell script, like so -

Code:
$
$
$ cat word_extractor_script.sh
perl -p -e "s/^.*?$1/$2/" cleanme > CleanerExtract
 
sed "s/^/$1 /g" CleanerExtract > CleanerExtract1
 
sed -n "/$2/p" CleanerExtract1 > CleanerExtract2
 
sed G CleanerExtract2 > CleanerExtract3
 
sed -e "s/.*$1//" -e "s/$2.*//" CleanerExtract3 > CleanerExtract4
 
sed "/^.\{1000\}/d" CleanerExtract4 > OutputShorter_$1_$2
 
rm CleanerExtract
rm CleanerExtract1
rm CleanerExtract2
rm CleanerExtract3
rm CleanerExtract4
$
$

It should work thereafter -

Code:
$
$ # show the contents of file "cleanme"
$ cat cleanme
There is a cat next to a dog. The dog is next to the cat. The elephant is behind the dog but under the cat which is to one side of the elephant and underneath the dog.
$
$ # show the contents of script "word_extractor_script.sh"
$ cat word_extractor_script.sh
perl -p -e "s/^.*?$1/$2/" cleanme > CleanerExtract
 
sed "s/^/$1 /g" CleanerExtract > CleanerExtract1
 
sed -n "/$2/p" CleanerExtract1 > CleanerExtract2
 
sed G CleanerExtract2 > CleanerExtract3
 
sed -e "s/.*$1//" -e "s/$2.*//" CleanerExtract3 > CleanerExtract4
 
sed "/^.\{1000\}/d" CleanerExtract4 > OutputShorter_$1_$2
 
rm CleanerExtract
rm CleanerExtract1
rm CleanerExtract2
rm CleanerExtract3
rm CleanerExtract4
$
$ # execute the script passing "cat" and "dog" as parameters
$ ./word_extractor_script.sh cat dog
$
$ # show the contents of "OutputShorter_cat_dog"
$ cat OutputShorter_cat_dog
 which is to one side of the elephant and underneath the
$
$

In any case, are you trying to do this ?

Code:
$
$ perl -plne 's/^.*cat(.*?)dog.*$/$1/' cleanme
 which is to one side of the elephant and underneath the
$

You don't need so many calls to sed in such a case.

tyler_durden
This User Gave Thanks to durden_tyler For This Post:
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Passing parameters through a file

I have created a script "myscript.sh" I need to run this script with diffrent parameters. The parameters are stored in a file myparam.txt. I need to run myscript.sh script for every parameter supplied in myparam.txt. Example: If myparam.txt contains following lines: param1 param2 param3... (3 Replies)
Discussion started by: chawlaaman
3 Replies

2. Shell Programming and Scripting

passing more than 9 parameters

hi, i am passing around 14 parameters for a script a=$1 b=$2 c=$3 d=$4 e=$5 f=$6 g=$7 h=$8 i=\"${9}\" shift j=\"${1}\" still for j it is displaying the 1st parameter value..how to make it take the 10th parameter (2 Replies)
Discussion started by: dnat
2 Replies

3. Shell Programming and Scripting

passing parameters using awk

Hi, The below script is working fine awk1.sh ======= awk BEGIN { FS="|" } FNR==NR { f1=$2; next } $1 in f1 && $2 =="xx" && $1 == "DAILY_JOB" {print $3} awk -f awk1.sh a.txt b.txt--Its working fine . When passing parameters its not working .Any help it should be appereciated. ... (4 Replies)
Discussion started by: akil
4 Replies

4. Shell Programming and Scripting

Automate the passing of parameters

I am writing a script that should read the csv file and pass the values in the file as parameters to the script. The csv file looks like this: TEST_1,20110221 TEST_2,20110220 TEST_3,20110218,20110219 Currently this is how i am running the script ./test.sh <param1> <date> Ex: ./test.sh... (6 Replies)
Discussion started by: stunnerz_84
6 Replies

5. Shell Programming and Scripting

Passing the parameters using a function

Hi All, I am new to shell scripting required some help in passing the parameter value to the shell script. I am writing a shell script, in the script I have created two functions as below. first function get_trend_ids () { Here I am connecting to the database and getting all the... (3 Replies)
Discussion started by: shruthidwh
3 Replies

6. UNIX for Dummies Questions & Answers

Passing the parameters through a file

Hi All, I have written a shell script and the script is working fine, I am passing my MIT_ID(NUMBER VALUE) to the shell script from the command prompt and my script is executing as expected. Now I have to pass all the MIT_ID's from a .txt file to the shell script,as I am automating this I... (6 Replies)
Discussion started by: gaur.deepti
6 Replies

7. Shell Programming and Scripting

passing parameters to the script

how can i make a script to run only when parameters are given, if parameters are not given it should through an error , saying "please enter a parameter" for ex: i want a find command to run only when the parameters are given (4 Replies)
Discussion started by: knip
4 Replies

8. Shell Programming and Scripting

passing parameters with spaces

we are using following script to execute stored procedue. The problem is run_pmcmd.ksh script is using $* parameter which is not taking in account 'Men Shirt' parameter which includes spaces. 1. Step 1 run_pmcmd.ksh CONVERT_TEST script for run_pmcmd.ksh /u01/$(whoami)/run_pmcmd.ksh... (11 Replies)
Discussion started by: sandy162
11 Replies

9. Shell Programming and Scripting

Passing 2+ parameters to one command

I have a script that uses more than one parameter. It looks like this: for i in `cat /tmp/listofpolicies`; do for x in $(cat /tmp/lst |sed 's/^/\/usr\/openv\/netbackup\/db\/class\//g'); do /usr/openv/netbackup/bin/admincmd/bpplinclude $i -delete -f $x;done;done The problem is that the... (3 Replies)
Discussion started by: newbie2010
3 Replies

10. Shell Programming and Scripting

Passing Parameters to Crontab

Hello Experts, I have a requirement to pass some parameters to Linux cron tab. For ex: My default cron entry looks like this as below: ------------------------------- 55 10 * * --... (7 Replies)
Discussion started by: MaheshChaudhari
7 Replies
PCRESAMPLE(3)						     Library Functions Manual						     PCRESAMPLE(3)

NAME
PCRE - Perl-compatible regular expressions PCRE SAMPLE PROGRAM
A simple, complete demonstration program, to get you started with using PCRE, is supplied in the file pcredemo.c in the PCRE distribution. A listing of this program is given in the pcredemo documentation. If you do not have a copy of the PCRE distribution, you can save this listing to re-create pcredemo.c. The demonstration program, which uses the original PCRE 8-bit library, compiles the regular expression that is its first argument, and matches it against the subject string in its second argument. No PCRE options are set, and default character tables are used. If matching succeeds, the program outputs the portion of the subject that matched, together with the contents of any captured substrings. If the -g option is given on the command line, the program then goes on to check for further matches of the same regular expression in the same subject string. The logic is a little bit tricky because of the possibility of matching an empty string. Comments in the code explain what is going on. If PCRE is installed in the standard include and library directories for your operating system, you should be able to compile the demon- stration program using this command: gcc -o pcredemo pcredemo.c -lpcre If PCRE is installed elsewhere, you may need to add additional options to the command line. For example, on a Unix-like system that has PCRE installed in /usr/local, you can compile the demonstration program using a command like this: gcc -o pcredemo -I/usr/local/include pcredemo.c -L/usr/local/lib -lpcre In a Windows environment, if you want to statically link the program against a non-dll pcre.a file, you must uncomment the line that defines PCRE_STATIC before including pcre.h, because otherwise the pcre_malloc() and pcre_free() exported functions will be declared __declspec(dllimport), with unwanted results. Once you have compiled and linked the demonstration program, you can run simple tests like this: ./pcredemo 'cat|dog' 'the cat sat on the mat' ./pcredemo -g 'cat|dog' 'the dog sat on the cat' Note that there is a much more comprehensive test program, called pcretest, which supports many more facilities for testing regular expres- sions and both PCRE libraries. The pcredemo program is provided as a simple coding example. If you try to run pcredemo when PCRE is not installed in the standard library directory, you may get an error like this on some operating systems (e.g. Solaris): ld.so.1: a.out: fatal: libpcre.so.0: open failed: No such file or directory This is caused by the way shared library support works on those systems. You need to add -R/usr/local/lib (for example) to the compile command to get round this problem. AUTHOR
Philip Hazel University Computing Service Cambridge CB2 3QH, England. REVISION
Last updated: 10 January 2012 Copyright (c) 1997-2012 University of Cambridge. PCRE 8.30 10 January 2012 PCRESAMPLE(3)
All times are GMT -4. The time now is 05:00 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy