Sponsored Content
Top Forums UNIX for Dummies Questions & Answers Loop with Perl (string search) Post 302969447 by Xterra on Tuesday 22nd of March 2016 10:56:38 PM
Old 03-22-2016
Loop with Perl (string search)

I am using a perl script to reverse and complement sequences if a string is found. The script works as expected as standalone but I would like to use it in my bash file. However, I am not getting my expected result.
My test.txt file
Code:
>Sample_72
CCCCTCGCGACCTGGATGTGTCGGCGTTTGTCATGTTTTCGTCGATGGCCGGGCTGGTCGGATCGTCSREVERGGGCCAGGCCAAAA
>Sample_2
CCCCTCGCGAJOHNCCTGGATGTGTCGGCGTTTGTCATGTTTTCGTCGATGGCCGGGCTGGTCGGATCGTCSREVERGGGCCAGGCCAAAA

Standalone Perl script:
Code:
perl -ple '/JOHN/ and y/ACGT/TGCA/ and $_ = reverse unless /^>/' test.txt

I get the expected output:
Code:
>Sample_72
CCCCTCGCGACCTGGATGTGTCGGCGTTTGTCATGTTTTCGTCGATGGCCGGGCTGGTCGGATCGTCSREVERGGGCCAGGCCAAAA
>Sample_2
TTTTGGCCTGGCCCREVERSGACGATCCGACCAGCCCGGCCATCGACGAAAACATGACAAACGCCGACACATCCAGGNHOJTCGCGAGGGG

Bash file:
Code:
#!/bin/bash
Primers=( NULL 'JOHN' )
for y in {1..1}
do
	perl -ple '/${Primers[$y]}/ and y/ACGT/TGCA/ and $_ = reverse unless /^>/' test.txt
done

Unexpected output:
Code:
>Sample_72
TTTTGGCCTGGCCCREVERSGACGATCCGACCAGCCCGGCCATCGACGAAAACATGACAAACGCCGACACATCCAGGTCGCGAGGGG
>Sample_2
TTTTGGCCTGGCCCREVERSGACGATCCGACCAGCCCGGCCATCGACGAAAACATGACAAACGCCGACACATCCAGGNHOJTCGCGAGGGG

in the bash file, the script reverses and complements the sequences regardless of the presence or absence of the string (JOHN)
I guess I still do not understand the proper use of slashes
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Perl: Search for string then parse next line

Hi All, I have a file that I need to be able to find a pattern match on one line then parse data on the next or subsequent lines - I will know which line needs to be parsed beforehand. This is what I currently have: while (<COMMAND_OUT>) { if ($_ =~ m/TEST/) { ... (4 Replies)
Discussion started by: pondlife
4 Replies

2. Shell Programming and Scripting

Perl: Search for string on line then search and replace text

Hi All, I have a file that I need to be able to find a pattern match on a line, search that line for a text pattern, and replace that text. An example of 4 lines in my file is: 1. MatchText_randomNumberOfText moreData ReplaceMe moreData 2. MatchText_randomNumberOfText moreData moreData... (4 Replies)
Discussion started by: Crypto
4 Replies

3. Shell Programming and Scripting

search for a string -perl

Hi, I have a line where i need to get certain part of it.. example.. text txt tt: 1909 thats how exactly it looks and all spaces are to be counted.. i need to retrieve 1909.. Thanks (11 Replies)
Discussion started by: meghana
11 Replies

4. Shell Programming and Scripting

Perl search in a string for....

ok so what I am trying to do is search through 200k files that have ext .000 or .702. for *@yahoo.com.tw and if it finds that in the file. then remove the file. this is my code... what am i doing wrong. it seams it will only find asdflkajsdf@yahoo.com.tw as a string and not *@yahoo.com.tw so it... (5 Replies)
Discussion started by: Philux
5 Replies

5. Shell Programming and Scripting

search of string from an array in Perl

Hi All I want to search a string from an array in Perl. If a match occurs, assign that string to a variable else assign 'No match'. I tried writing the script as follows but it's in vain. Please help me.. #!/usr/bin/perl use strict; my $NER; my @text=("ORG","PER"); ... (4 Replies)
Discussion started by: my_Perl
4 Replies

6. Programming

PERL, search and replace inside foreach loop

Hello All, Im a Hardware engineer, I have written this script to automate my job. I got stuck in the following location. CODE: .. .. ... foreach $key(keys %arr_hash) { my ($loc,$ind,$add) = split /,/, $arr_hash{$key}; &create_verilog($key, $loc, $ind ,$add); } sub create_verilog{... (2 Replies)
Discussion started by: riyasnr007
2 Replies

7. Shell Programming and Scripting

perl search string for cut data

perl -lne '$/="1H1XXXXX";print $_ if /0001|0002|0003/' data.txt> output.txt more data.txt 1H1XXXXX|0001|Y| aaa bbb ccc 1H1XXXXX|0005|N| bbb g 1H1XXXXX|0001|Y| hhh ddd 222 1H1XXXXX|0002|Y| 444 1H1XXXXX|0002|N| 222 1H1XXXXX|0003|Y| hhhh (3 Replies)
Discussion started by: kittiwas
3 Replies

8. Shell Programming and Scripting

Recursive search for string in file with Loop condition

Hi, Need some help... I want to execute sequence commands, like below test1.sh test2.sh ...etc test1.sh file will generate log file, we need to search for 'complete' string on test1.sh file, once that condition success and then it should go to test2.sh file, each .sh scripts will take... (5 Replies)
Discussion started by: rkrish123
5 Replies

9. UNIX for Dummies Questions & Answers

Search different string using perl

Hello, I want to search two strings in a file and print the same in the new file using perl script. Can anyone suggest me how to do this... The file looks like below: <UML:ModelElement.requirement> <UML:Dependency name="Row_MainColumn_FW_0009"> <UML:ModelElement.taggedValue>... (3 Replies)
Discussion started by: suvendu4urs
3 Replies

10. UNIX for Beginners Questions & Answers

Loop through the folders and search for particular string in files

Hello, Opearting System Environment : HP Unix B.11.31 U I look for script to On specific folders list On specific filelist Search for given string For Example : r48_buildlib.txt contains wpr480.0_20161027 wpr480.0_20161114 wpr481.0_20161208 wpr482.0_20161222... (4 Replies)
Discussion started by: Siva SQL
4 Replies
Test::Regression(3pm)					User Contributed Perl Documentation				     Test::Regression(3pm)

NAME
Test::Regression - Test library that can be run in two modes; one to generate outputs and a second to compare against them VERSION
Version 0.05 SYNOPSIS
use Test::Regression; ok_regression(sub {return "hello world"}, "t/out/hello_world.txt"); DESCRIPTION
Using the various Test:: modules you can compare the output of a function against what you expect. However if the output is complex and changes from version to version, maintenance of the expected output could be costly. This module allows one to use the test code to generate the expected output, so that if the differences with model output are expected, one can easily refresh the model output. EXPORT
ok_regression FUNCTIONS
ok_regression This function requires two arguments: a CODE ref and a file path. The CODE ref is expected to return a SCALAR string which can be compared against previous runs. If the TEST_REGRESSION_GEN is set to a true value, then the CODE ref is run and the output written to the file. Otherwise the output of the file is compared against the contents of the file. There is a third optional argument which is the test name. ENVIRONMENT VARIABLES
TEST_REGRESSION_GEN If the TEST_REGRESSION_GEN environment file is unset or false in a perl sense, then the named output files must exist and be readable and the test will run normally comparing the outputs of the CODE refs against the contents of those files. If the environment variable is true in a perl sense, then model output files will be overwritten with the output of the CODE ref. AUTHOR
Nicholas Bamber, "<nicholas at periapt.co.uk>" BUGS
Please report any bugs or feature requests to "bug-test-regression at rt.cpan.org", or through the web interface at <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-Regression>. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes. testing of STDERR The testing of stderr from this module is not as thorough as I would like. Test::Builder::Tester allows turning off of stderr checking but not matching by regular expression. Handcrafted efforts currently fall foul of Test::Harness. Still it is I believe adequately tested in terms of coverage. SUPPORT
You can find documentation for this module with the perldoc command. perldoc Test::Regression You can also look for information at: o RT: CPAN's request tracker <http://rt.cpan.org/NoAuth/Bugs.html?Dist=Test-Regression> o AnnoCPAN: Annotated CPAN documentation <http://annocpan.org/dist/Test-Regression> o CPAN Ratings <http://cpanratings.perl.org/d/Test-Regression> o Search CPAN <http://search.cpan.org/dist/Test-Regression/> ACKNOWLEDGEMENTS
Some documentation improvements have been suggested by toolic (http://perlmonks.org/?node_id=622051). Thanks to Filip GraliXski for pointing out I need to test against output of zero length and providing a patch. COPYRIGHT &; LICENSE Copyright 2009-10 Nicholas Bamber. This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information. perl v5.10.1 2010-08-29 Test::Regression(3pm)
All times are GMT -4. The time now is 01:49 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy