Today (Saturday) We will make some minor tuning adjustments to MySQL.

You may experience 2 up to 10 seconds "glitch time" when we restart MySQL. We expect to make these adjustments around 1AM Eastern Daylight Saving Time (EDT) US.


How to pass a single quote to the program?


Login or Register to Reply

 
Thread Tools Search this Thread
# 1  
How to pass a single quote to the program?

Dear forum members,

My question is simple. I want to pass a single quote (') to be read as belonging as an addition to the letters C1', C2', C3', C4', C5', O1', O2', O3', O4' & O5' to the program voronota query-contacts which would be run through shell script and should print out numerical values. I tried writing C1\', C2\', C3\', etc. but am getting no results (blank when I am expecting numbers). Thus the question is how could I pass these letters with a single quote as an argument to voronota query-contacts command? The script is this:
Code:
#!/bin/bash
read -p "amino acid: " AAA
if [[ "ALA ARG ASN ASP CYS GLN GLY GLU HIS ILE \
	   LEU LYS MET PHE PRO SER THR TRP TYR VAL" =~ $AAA ]]
then
	for i in HS_*.pdb; 
		do
    		cat $i | voronota get-balls-from-atoms-file --annotated \
    			   | voronota calculate-contacts --annotated \
	    		   | voronota query-contacts --inter-residue --match-first "'R<$AAA>'" \
	    		   --match-second 'A<C1', C2' ,C3' ,C4' ,C5',O1 , O2, O3, O4, O5, O1',O2',O3',O4',O5',N1,N2,N3,C1,C2,C3,C4,C5>'  \
    		   	   | awk '{sum += $3} END {print sum}'
		done
else
	exit 1
fi

The output through command line in all the ways described I get is a blank one:
Code:

Thank you very much for your help. I will look forward to your responses.

Yours Sincerely,
Aurimas
# 2  
Try enclosing the expression in double quotes (as you did with "'R<$AAA>'" ).
# 4  
Difficult to believe. Show what you did and the results thereof.
This User Gave Thanks to RudiC For This Post:
# 5  
My input was:

Code:
#!/bin/bash
read -p "amino acid: " AAA
if [[ "ALA ARG ASN ASP CYS GLN GLY GLU HIS ILE \
	   LEU LYS MET PHE PRO SER THR TRP TYR VAL" =~ $AAA ]]
then
	for i in HS_*.pdb; 
		do
    		cat $i | voronota get-balls-from-atoms-file --annotated \
    			   | voronota calculate-contacts --annotated \
    			   | voronota query-contacts --inter-residue --match-first "'R<$AAA>'" --match-second "'A<C1',C2',C3',C4',C5',O1,O2,O3,O4,O5,O1',O2',O3',O4',O5',N1,N2,N3,C1,C2,C3,C4,C5>'" \
    			   | awk '{sum += $3} END {print sum}'
		done
else
	exit 1
fi

Then I wrote ./voronota_improved_interface_atoms.sh
When asked for amino acid: I entered ALA and the answer given was 28 blank values:
Code:

So apperently single quote is not passed as an argument unless I am doing something wrong :/
# 6  
You definitely need to split your pipeline into single commands and analyse each one of them separately in order to identify what is going wrong. I don't know the voronota command, what it requires, and what its outputs should look like, but piping some file through three instances of it is somewhat new to me.


Re. your single quote question, to me the double quoting seems to do exactly what you need. echoing your third voronota command with the respective variables and quoting yields:
Code:
echo voronota query-contacts --inter-residue --match-first "'R<$AAA>'" --match-second "'A<C1',C2',C3',C4',C5',O1,O2,O3,O4,O5,O1',O2',O3',O4',O5',N1,N2,N3,C1,C2,C3,C4,C5>'" 
voronota query-contacts --inter-residue --match-first 'R<ALA>' --match-second 'A<C1',C2',C3',C4',C5',O1,O2,O3,O4,O5,O1',O2',O3',O4',O5',N1,N2,N3,C1,C2,C3,C4,C5>'

These 2 Users Gave Thanks to RudiC For This Post:
# 7  
I figured out that my input statement was a bit wrong. So no worries. Your suggestion worked. Thanks!
Login or Register to Reply

|
Thread Tools Search this Thread
Search this Thread:
Advanced Search

More UNIX and Linux Forum Topics You Might Find Helpful
Replacing all but the first and last double quote in a line with a single quote with awk
Michael Stora
From: 1,2,3,4,5,This is a test 6,7,8,9,0,"This, is a test" 1,9,2,8,3,"This is a ""test""" 4,7,3,1,8,"""" To: 1,2,3,4,5,This is a test 6,7,8,9,0,"This; is a test" 1,9,2,8,3,"This is a ''test''" 4,7,3,1,8,"''"Is there an easy syntax I'm overlooking? There will always be an odd number...... Shell Programming and Scripting
5
Shell Programming and Scripting
Replace single quote with two single quotes in perl
DushyantG
Hi I want to replace single quote with two single quotes in a perl string. If the string is <It's Simpson's book> It should become <It''s Simpson''s book>... Shell Programming and Scripting
3
Shell Programming and Scripting
Regex in grep to match all lines ending with a double quote (") OR a single quote (')
NanJ
Hi, I've been trying to write a regex to use in egrep (in a shell script) that'll fetch the names of all the files that match a particular pattern. I expect to match the following line in a file: Name = "abc" The regex I'm using to match the same is: egrep -l '(^) *= *" ** *"$' /PATH_TO_SEARCH...... Shell Programming and Scripting
6
Shell Programming and Scripting
single quote
dreams5617
Hi I have a shell script with many lines as below: comment on column dcases.proj_seq_num is dcases_1sq; .... .... I want the above script to be as below: comment on column dcases.proj_seq_num is 'dcases_1sq'; I want to have single quotes like that as above for the entire shell...... Shell Programming and Scripting
2
Shell Programming and Scripting
Replacing a single quote
rjsha1
Hi there I have a data file like so below 'A/1';'T100002';'T100002';'';'01/05/2004';'31/05/2004';'01/06/2004';'08/06/2004';'1.36';'16';'0.22';'0';'0';'1.58';'0';'0';'0';'0';'0';'0';'clientes\resumen\200405\resumen_T100002_T100002_1.pdf';'';'0001';'S';'20040501';'';'02';'0';'S';'N'...... Shell Programming and Scripting
3
Shell Programming and Scripting

Featured Tech Videos